现有规则重定向到新网址规则

时间:2014-01-23 16:42:48

标签: .htaccess

我的旧网址结构类似于domain.com/product-name-etc-pid-001.html,我有以下htaccess代码:

RewriteRule (.*)-pid-(.*)\.html$ p.php?n=$1&pid=$2

对于我的新结构,网址为domain.com/products/product-name-etc/001

RewriteRule ^products/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ p.php?pid=$2 [NC,L]

现在我希望永久地将所有旧网址指向新位置。

   Redirect 301 /(.*)-pid-(.*)\.html$ ^compare/$1/$2/?$

我一直在尝试并提出上面的代码,正如预期的那样它无法正常运行并且给出了500内部服务器错误。

2 个答案:

答案 0 :(得分:1)

您可以使用以下规则:

RewriteRule ^([^-]+)-pid-([^.]+)\.html$ /products/$1/$2 [L,NC,R=301]

RewriteRule ^products/([\w-]+)/([\w-]+)/?$ /p.php?n=$1&pid=$2 [NC,L,QSA]

答案 1 :(得分:0)

使用旧规则并稍作修改,并提供以下解决方案:

RewriteRule ^(.*)-pid-(.*)\.html$ /compare/$1/$2 [L,NC,R=301]