htaccess查询基于字符串的URL

时间:2011-01-01 04:47:13

标签: php .htaccess redirect seo

假设我的网站是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中有可能,但我不知道该怎么做

1 个答案:

答案 0 :(得分:1)

RewriteRule ^php/bookdetails\.php\?bid=(\d+)$ bookdetails/$1 [L,R=301]

与旧格式匹配的PCRE,捕获号码,新URL与捕获号码的引用,上次规则,HTTP状态重定向301(永久移动)

测试它的语法,但不是为了确保它正常工作。我很确定如果不是这样,它应该是关闭的。)

确保此规则在您提到的另一个重写到正确的php URL之前,或者您将获得500以进行无限循环重写。

Rewrite GuideAdvanced Rewrite Guide是非常宝贵的资源。

修改

顺便说一句,这是.htaccess and seo friendly urls的副本,可能是其他几个副本,以获得更多想法。 (我应该先找一个副本。)