我的旧网址结构类似于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内部服务器错误。
答案 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]