【问题标题】:.htaccess url rewrite inserts path to url.htaccess url rewrite 插入 url 的路径
【发布时间】:2014-04-07 20:01:31
【问题描述】:

我正在运行一个 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

谁能告诉我如何防止这种情况发生?

【问题讨论】:

    标签: php .htaccess magento mod-rewrite


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的帮助,但这并没有解决问题。 (我仍然将 home/.../public_html 添加到 url)
    【解决方案2】:

    这应该适合你:

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

    【讨论】:

      猜你喜欢
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      相关资源
      最近更新 更多