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