Php .htaccess url rewrite将路径插入到url

Php .htaccess url rewrite将路径插入到url,php,.htaccess,magento,mod-rewrite,Php,.htaccess,Magento,Mod Rewrite,我正在运行一个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 致: ex

我正在运行一个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\u html/abc.html/?foo=0

(它将文件位置路径从主目录添加到文件abc.html。Htaccess文件位于public\u html


有人能告诉我如何防止这种情况吗?

$1foo=0[R=301,L]
之前添加
/
应该可以解决这个问题。是的

RewriteCond %{QUERY_STRING} ^foo=1(.*)$  [NC]
RewriteRule ^(.*)?foo=1$ /$1foo=0 [R=301,L]

这应该适合您:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+([^?]+)\?(foo)=1[&\s] [NC]
RewriteRule ^ /%1?%2=0 [R=301,L]

谢谢你的帮助,但这并没有解决问题。(我仍然将home/../public\u html添加到url)