我正在尝试将“/products/MFG/date/SKU.html”重写为“MFG-SKU.html”
我们目前的重写仅改写为“SKU.html”。
RewriteCond %{REQUEST_URI} ^/products/
RewriteRule /([^/]*)$ /$1 [R=301,NC,L]
如何将MFG作为变量包含在SKU之前?
示例网址为:
http://example.com/products/MFG/2010-04-01/1234.html => http://example.com/MFG-1234.html
MFG和1234是可能发生变化的变量。
答案 0 :(得分:0)
嗯,这个应该为你做的工作:
RewriteRule ^products/([^/]+)/[0-9-]+/([^/]+)\.html$ $1-$2.html [R=301,L]
它会将/products/MFG/2010-04-01/1234.html
重定向到/MFG-1234.html
。
它不验证参数(MFG,SKU,日期):
MFG
部分可以是1个路径段内的任何内容(这意味着除了斜杠/
之外的任何字符):可以是字母,数字,Unicode字符等。如果您需要限制它 - 只需将模式([^/]+)
修改为您想要的任何限制; date
部分验证非常简单 - 只允许数字和-
。所以即使123456-09876
也会奏效。再一次 - 如果你需要更精确的验证,只需按照模式; SKU
部分 - 与MFG
部分相同的验证。此规则旨在放在网站根文件夹中的.htaccess中。如果放在其他地方,可能需要进行一些小的调整。