假设我的网站是www.example.com
之前我的网站的网址是这样的 www.example.com/php/bookdetails.php?bid=33
上周我将网站的网址更改为 www.example.com/bookdetails/33
并写了这样的htacces
RewriteRule ^bookdetails/(.*)$ php/bookSearchResult.php?bid=$1
问题是有一些外部网站使用我之前的网址结构( www.example.com/php/bookdetails.php?bid=33 ),我想要的是将其重定向到我的新网址结构( www.example.com/bookdetails/33 )。
我知道在htaccess中有可能,但我不知道该怎么做
答案 0 :(得分:1)
RewriteRule ^php/bookdetails\.php\?bid=(\d+)$ bookdetails/$1 [L,R=301]
与旧格式匹配的PCRE,捕获号码,新URL与捕获号码的引用,上次规则,HTTP状态重定向301(永久移动)
(测试它的语法,但不是为了确保它正常工作。我很确定如果不是这样,它应该是关闭的。)
确保此规则在您提到的另一个重写到正确的php URL之前,或者您将获得500以进行无限循环重写。
Rewrite Guide和Advanced Rewrite Guide是非常宝贵的资源。
修改强>
顺便说一句,这是.htaccess and seo friendly urls的副本,可能是其他几个副本,以获得更多想法。 (我应该先找一个副本。)