0

我需要一些帮助,为以下类型的 url 创建 htaccess 301 重定向。

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

旧: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-product-name -slug-233​​.html

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

我希望一切都说得通。

4

1 回答 1

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( ?...)

于 2013-03-12T21:45:33.827 回答