我有 products.php,我想将其更改为 /europe-cell-phone/。我制定了一条重写规则来执行此操作:
RewriteRule ^europe-cell-phone/$ products.php [L]
但是我还需要将旧页面 (products.php) 301 到 /europe-cell-phone/。我尝试使用以下规则执行此操作:
RewriteRule ^products.php$ http://www.eurobuzz.com/europe-cell-phone/ [R=301,L]
但是当我转到 products.php 并希望重定向时,我遇到了无限重定向循环,有什么解决办法吗?以前从未遇到过这个问题。
答案1
您需要将 products.php 重命名为 products-new.php 并创建如下两个规则:
重写规则 ^europe-cell-phone/$products-new.php [L]
重写规则^products.php$products-new.php [R=301,L]
答案2
您需要测试原始请求,THE_REQUEST
因为REQUEST_URI
可能已经被规则更改:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /products\.php
RewriteRule ^products\.php$ /europe-cell-phone/ [R=301,L]
RewriteRule ^europe-cell-phone/$ products.php [L]
答案3
对于 Apache 中的重写,你可以像这样编写:RewriteRule图案 代换
因此,您列出的第一条规则与“europe-cell-phone”匹配,并将其替换为“products.php”
您的第二条规则似乎起到了相反的作用。我认为您可能需要在第一条规则中改变一下。