这是我在.htaccess文件中的规则:
Redirect 301 /George-Nelson-Bench-CT3005-EDI6.htm?categoryId=-1 http://www.mydomain.com/proddetail.php?prod=George_Nelson_Bench
但这在我的网站上显示404错误。
.htaccess文件中的其他一些代码是:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L]
其他一些正常运行的301重定向:
Redirect 301 /Modern-Classics_c8.htm http://www.mydomain.com/categories.php?cat=10
Redirect 301 /Sofas_c34.htm http://www.mydomain.com/products.php?cat=25
Redirect 301 /Bedroom_c2.htm http://www.mydomain.com/categories.php?cat=7
那么,为什么第一个301重定向规则不起作用?
有任何建议吗?
答案 0 :(得分:1)
因为无论如何使用mod_rewrite,最好将基于mod_alias的代码替换为更强大,更灵活的mod_rewrite。
您首先使用重定向规则,因为您正在使用查询参数。用以下内容替换该规则:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+George-Nelson-Bench-CT3005-EDI6\.htm\?categoryId=-1\s [NC]
RewriteRule ^ /proddetail.php?prod=George_Nelson_Bench? [R=301,L]