0

我有这样的 URL 结构

mydomain.com/category/--_brand/---color.html

所以品牌总是以 a 开头,--_而颜色总是以开头---。但是 URL 部分的顺序和数量可以改变,例如:

mydomain.com/category/---color.html    or
mydomain.com/category/---color/--_brand.html

RewriteRule 的结果应该是这样的:

index.php?category=$1&color=$2&brand=$3

目前,我所拥有的只是 .htaccess 中的这个:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/?(.*)\.html$ index.php?category=$1&color=$2 [L,QSA]

所以它只针对类别和颜色,它不检查颜色是否以'---'开头,如果 URL 部分的顺序发生变化,这将是一个问题。提前谢谢你的帮助!

4

1 回答 1

2

以下规则将处理/category/--_brand/---color.htmlURL /category/---color.html,即品牌何时出现可选。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(?:--_([^/]+)/)?---(.*)\.html$ index.php?category=$1&brand=$2&color=$3 [L,QSA]

/category/---color/--_brand.html当颜色和品牌出现的顺序发生变化时,您将需要另一条规则。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/---([^/]+)/--_(.*)\.html$ index.php?category=$1&color=$2&brand=$3 [L,QSA]
于 2013-09-12T11:29:26.483 回答