这些.htaccess mod_rewrite规则可以压缩吗?

时间:2012-04-27 11:04:39

标签: .htaccess mod-rewrite url-rewriting rewrite redirect

我的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]

规则正在运作,但它们有点冗长。有没有诀窍来压缩规则?前两个之间的差异只是结束斜杠,最后两个也是如此。

1 个答案:

答案 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]