由htaccess在URL中的参数

时间:2016-09-19 07:47:35

标签: apache .htaccess mod-rewrite

我正在使用以下代码:

#RewriteCond %{QUERY_STRING} !(^|&)sort_field=more&limit=&p=(&|$) [NC]
#RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
#RewriteRule ^ %{REQUEST_URI}?sort_field=more&limit=&p= [L,R=301,QSA]

但它会在所有页面上添加参数。我只需要将params添加到主域。我该怎么办?

1 个答案:

答案 0 :(得分:0)

首先,这些指令不适用,因为它们前面有一个哈希#

查询字符串(params)被添加到所有页面,因为模式^(URL的开头)与所有页面匹配。如果您只想匹配特定页面,则必须使用适当的模式,有关如何指定模式的详细信息,请参阅Regular Expressions

在您的情况下,主域(主页?),它只是^$^index.html$或类似,例如

RewriteRule ^$ %{REQUEST_URI}?sort_field=more&limit=&p= [L,R,QSA]

如果一切正常,您可以将R替换为R=301从不使用R=301进行测试。