0

在我的网站上出于 SEO 目的,链接hotel.php?hotel_id=104更改为parkgrand.html 并更改 htaccess 以引用相同的脚本

代码 :RewriteRule ^parkgrand\.html$ /hotel.php?hotel_id=104

直到这个它工作正常。但我想如果某些用户仍然访问旧网址,即 hotel.php?hotel_id=104 那么他应该自动重定向到 parkgrand.html 并且用户代理应该得到响应 301

所以,现在的代码变成了

RewriteCond  %{REQUEST_URI} ^/hotel.php
RewriteCond  %{QUERY_STRING} ^hotel_id=104
RewriteRule ^hotel.php /parkgrand.html [L,R=301]

RewriteRule ^parkgrand\.html$ /hotel.php?hotel_id=104

但这会导致重定向循环,并且不会向用户显示预期的页面。谁能告诉我什么应该是正确的代码。

4

1 回答 1

3

试试这个:

# Redirect /hotel.php?hotel_id=104 to /parkgrand.html
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+hotel\.php\?hotel_id=104[&\s] [NC]
RewriteRule ^ /parkgrand.html? [R=302,L]

一旦您确认它正在避免缓存,请从 更改为R=302R=301

请记住,自从您使用 以来,您之前的尝试可能已经被缓存R=301,我建议您使用不同的浏览器测试上述内容,以确保它在您常用的浏览器被缓存的情况下正常工作。

于 2013-09-25T08:46:36.053 回答