.htaccess将查询字符串参数的值重写为URI文件夹

时间:2014-07-04 15:47:16

标签: php .htaccess mod-rewrite redirect

我知道你mod_rewrite ninjas会在一秒内回答这个问题。 Google已经使用/p.php?p=Monkey格式对一堆网址编制索引,我想使用.htaccess重写规则来提供一个很好的301永久重定向到/Monkey

我试过这段代码:

# Redirect old product page address to new location
RewriteCond %{QUERY_STRING} ^p=(.*)$ 
RewriteRule . /$1 [L,R=301]

但它不能按要求工作。条件似乎匹配,因为规则执行但重定向到/p=Monkey。差不多了!我究竟做错了什么?如何在查询字符串中反向引用p的所有重要值?

1 个答案:

答案 0 :(得分:2)

固定!当我应该使用百分比符号时,我的错误是使用美元符号进行反向引用。我是多么完整的驴子!这可能是因为我主要使用PHP编写代码,其中后向引用以美元为前缀。

此外,我不得不添加一个问号来指示它完全删除查询字符串。

功能代码如下:

# Redirect old product page address to new location
RewriteCond %{QUERY_STRING} ^p=(.*)$  
RewriteRule . /%1? [L,R=301]