为多个变量重写htaccess文件

时间:2014-05-29 18:12:31

标签: php .htaccess variables mod-rewrite

我有以下htaccess文件:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

RewriteRule ^archive/([^/]+)$ news?url=$1
RewriteRule ^cars/([^/]+)$ carbrands?brand=$1

这很好但现在我想在最后一条规则中添加一些内容,以便它可以使用一个和两个变量。

我尝试通过将最后一条规则修改为:

来实现此目的
RewriteRule ^cars/([^/]+)/([^/]+)$ carbrands?brand=$1&model=$2

所以代码必须工作才能打开关于汽车品牌的页面,但是当我尝试访问该汽车品牌的汽车模型页面时它也应该工作。例子:

example.com/cars/bmw(.php)
example.com/cars/bmw/3-series(.php)

我修改的规则仅适用于:

example.com/cars/bmw/3-series(.php)

我如何才能为汽车品牌网页做这项工作?

1 个答案:

答案 0 :(得分:1)

如果您不介意将“模型”留空,可以尝试:

RewriteRule ^cars/([^/]+)(?:/([^/]+|)$ carbrands?brand=$1&model=$2 [L]

或者,您需要两条规则:

RewriteRule ^cars/([^/]+)/([^/]+)$ carbrands?brand=$1&model=$2 [L]
RewriteRule ^cars/([^/]+)$ carbrands?brand=$1 [L]

每个参数数量一个。