为多个变量重写htaccess文件


Rewrite htaccess file for more than one variable

我有以下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)

我怎样才能使这个工作的汽车品牌网页?

如果你不介意"model"为空,你可以试试:

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

或者,你需要两个规则:

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