以下是我的htaccess文件中的重定向
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^project/(.*)$ /service/$1 [R=301,NC,L]
RewriteCond %{QUERY_STRING} name
RewriteRule ^$ /? [R=301,L]
RewriteCond %{QUERY_STRING} p
RewriteRule ^$ /? [R=301,L]
我遇到的问题是它干扰了特定的网址。
而不是得到:
我得到了:
http://www.example.com/?gf_page=select_columns&id=1&TB_iframe=true&height=365&width=600
我看到url参数有单词" page"在它。
我想知道我的重定向是不是完全匹配,因此匹配" p"在单词" page"。
RewriteCond %{QUERY_STRING} p
如果那是(实际上)问题,我怎样才能使query_string完全匹配?
重写条件应该只从域的根级别获取与p完全匹配的查询字符串。
如果那不是问题,还有其他想法吗?
答案 0 :(得分:1)
你可以做这样的事情并结合这两个规则。这应该有助于匹配p。
RewriteEngine on
RewriteCond %{QUERY_STRING} (name|p)=.+
RewriteRule ^$ /? [R=301,L]
在尝试新规则之前清除缓存,因为您设置了之前的301。