0
我在我的htaccess文件中有以下内容,它需要一个类似于www.example.com/Page.php?id=About的URL并将其转换为www.example.com/about。唯一的问题是,当我在htaccess中设置Redirect 301s时,旧URL不会重定向到新的URL(我知道这是因为你不应该在基本的Redirect 301中传递参数 - 基本重定向的例子,已经在下面尝试过)。htaccess 301重定向URL参数
Redirect 301 /Page.php?id=About http://www.example.com/about
问题是,新的URL不一定只是删除当前的id并用小写版本代替它。举例来说,我也想:
Redirect 301 /Page.php?id=Example http://www.example.com/example-page
我想保持重写URL的当前功能,同时也希望将旧网址的任何访问重定向到新的(即更新谷歌索引) 。访问www.example.com/Page.php?id=目前仍然有效,但显示的页面没有内容。
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9\-]+)/?$ Page.php?id=$1
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2&tabid=$3
感谢您的建议。不幸的是,访问http://www.example.com/Page.php?id=About虽然没有重定向到http://www.example.com/about? –
该规则适用于page.php,小写字母p。我刚刚用NC标志更新了答案,使规则不区分大小写。现在它应该匹配page.php和Page.php –
谢谢,几乎在那里,我得到:http://www.example.com/about?id=About现在。是否有可能在最后没有?id = About? –