Php 为多个变量重写htaccess文件

Php 为多个变量重写htaccess文件,php,.htaccess,variables,mod-rewrite,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 这很好,但是现在我想在最后一条规则中添加一些东西,

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

如何使汽车品牌网页也能使用此功能?

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

RewriteRule ^cars/([^/]+)(?:/([^/]+|)$ carbrands?brand=$1&model=$2 [L]
或者,您需要两条规则:

RewriteRule ^cars/([^/]+)/([^/]+)$ carbrands?brand=$1&model=$2 [L]
RewriteRule ^cars/([^/]+)$ carbrands?brand=$1 [L]
每个参数数对应一个。

^cars/([^/]+)(?:/([^/]+)?$