301在htaccess中重定向。匹配页面ID

时间:2013-03-11 22:35:25

标签: .htaccess mod-rewrite url-rewriting http-status-code-301

我想帮助为以下类型的网址创建htaccess 301重定向。

总共有大约500个左右的产品,而不是为每个网址写一个重定向,这将是非常笨重和耗时,我希望有一个更简单的方法,我还没有找到创建一种正则表达式匹配?

OLD:http://www.example.co.uk/test-product-name-slug/prod_233.html

新:http://www.example.co.uk/test-product-name-slug-233.html

可以通过浏览到..... example.co.uk/-223.html来访问新的URL ......然后重写为..... example.co.uk/test-产品名称 - 蛞蝓-233.html

所以看起来我需要一种方法来检测传入的访问者是否来到一个包含prod_id并重定向到-id的URL

我希望一切都有道理。

1 个答案:

答案 0 :(得分:0)

希望这就是你要找的东西。它只匹配

中的1个目录

/some-product_name-random/prod_9393.html => /some-product_name-random-9393.html

<强>的.htaccess

RewriteEngine on 
RewriteBase /

RewriteRule ^([a-zA-A-_]+)/prod_([0-9]+)\.html$ /$1-$2.html [R=301,L,QSA]

正则表达式和参数说明

([a-zA-A-_]+)匹配产品名称$1

prod_([0-9]+)匹配产品ID $2

[R=301] 301永久重定向

[L]停止.htaccess脚本(可能会被移除,但在针对不同场景使用多个规则时,通常是针对特定规则的良好做法)

[QSA]保留查询字符串domain.com/somepath/page.html?querystring=value&otherstuff?...