我的htaccess文件中有一些mod_rewrite规则,用于将不存在的页面重定向到默认页面,如下所示:
http://domain.tld/category1/subcategoryX
http://domain.tld/category1/subcategoryX/
http://domain.tld/category1/subcategoryX/property1
http://domain.tld/category1/subcategoryX/property1/
全部重定向到
http://domain.tld/category1/subcategoryX/property1/value1
我正在进行此重定向,因为子类别和属性没有页面,只有值可以。
这些是规则:
RewriteRule ^category1/[a-z-]+$ http://%{HTTP_HOST}%{REQUEST_URI}/property1/value1 [R,NC,L]
RewriteRule ^category1/[a-z-]+/$ http://%{HTTP_HOST}%{REQUEST_URI}property1/value1 [R,NC,L]
RewriteRule ^category1/[a-z-]+/property1$ http://%{HTTP_HOST}%{REQUEST_URI}/value1 [R,NC,L]
RewriteRule ^category1/[a-z-]+/property1/$ http://%{HTTP_HOST}%{REQUEST_URI}value1 [R,NC,L]
规则正在运作,但它们有点冗长。有没有诀窍来压缩规则?前两个之间的差异只是结束斜杠,最后两个也是如此。
答案 0 :(得分:0)
RewriteRule ^(category1/[a-z-]+)/?$ /$1/property1/value1 [R,NC,L]
RewriteRule ^(category1/[a-z-]+/property1)/?$ /$1/value1 [R,NC,L]
或者你甚至可以从class1 / *
开始重定向所有网址RewriteRule ^(category1/[a-z-]+) /$1/property1/value1 [R,NC,L]