如何使.htaccess 从网址中移除问号 ?id=(.*)
?
# Rewrite for ?id=(.*)
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule .*$ %{REQUEST_URI}%1? [R=301,L]
# It does not work out on this way
RewriteCond %{QUERY_STRING} !=""
RewriteCond %{QUERY_STRING} !^id=.*
RewriteRule .*$ %{REQUEST_URI}%1? [R=301,L]
答案 0 :(得分:1)
这是正确的规则:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^?#\ ]*)\?[^\ ]*\ HTTP/ [NC]
RewriteCond !{QUERY_STRING} id
RewriteRule .*$ %{REQUEST_URI}? [R=301,L]
<强>更新强>:
# Query rewrite exceptions
RewriteCond %{QUERY_STRING} !callback=.*
答案 1 :(得分:0)
这有用吗?
RewriteCond %{QUERY_STRING} ^.+$
RewriteCond %{QUERY_STRING} !^id=
RewriteRule ^(.*)$ $1?%1 [R=301,L]
提示:在测试期间,使用302重定向而不是301,因为浏览器会存储301重定向。完成测试后,您最终可以切换到经典301.
答案 2 :(得分:0)
如果您需要http://site.com/page/?YOURSTRING=blabla
重定向到http://site.com/page/