重写为新 URL,并将旧页面 301 到新 URL

重写为新 URL,并将旧页面 301 到新 URL

我有 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”

您的第二条规则似乎起到了相反的作用。我认为您可能需要在第一条规则中改变一下。

相关内容