1

这是我在 .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 重定向规则不起作用?
有什么建议么?

4

1 回答 1

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]
于 2013-07-02T11:07:57.293 回答