我正在运营一个magento网站。我注意到一些 GET 参数foo=1
崩溃了其中一个扩展程序。我想抓住它并用foo=0
替换它以防止foo为1。
(由于其他原因我需要foo,并且无法完全删除它)
所以我将其插入 .htaccess 文件中:
RewriteCond %{QUERY_STRING} ^foo=1(.*)$ [NC]
RewriteRule ^(.*)?foo=1$ $1foo=0 [R=301,L]
我希望这会改写:
example.com/abc.html/?foo=1
至:
example.com/abc.html/?foo=0
相反,它将其重写为:
example.com/home/[folder]/public_html/abc.html/?foo=0
(它将文件位置路径从主页添加到文件 abc.html .Htaccess文件位于 public_html )
有人可以告诉我如何防止这种情况吗?
答案 0 :(得分:1)
在/
之前添加$1foo=0 [R=301,L]
应解决此问题。所以它会是
RewriteCond %{QUERY_STRING} ^foo=1(.*)$ [NC]
RewriteRule ^(.*)?foo=1$ /$1foo=0 [R=301,L]
答案 1 :(得分:1)
这应该适合你:
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+([^?]+)\?(foo)=1[&\s] [NC]
RewriteRule ^ /%1?%2=0 [R=301,L]