麻烦.htaccess和目录中的两个文件

时间:2014-06-04 18:41:25

标签: regex apache .htaccess mod-rewrite

尝试根据汽车网站的额外网址参数在同一文件夹中执行不同的文件时,我的.htaccess文件出现问题。我在正则表达式上非常糟糕,并且真的试图让它发挥作用,希望你们能帮忙。

目录结构是www.domain.com/car/make/model

我当前的.htaccess文件位于/ car中,以下是“make”:

RewriteCond %{REQUEST_URI} !make\.php
RewriteCond %{REQUEST_URI} /([^/]+)/([^/]+)
RewriteRule !\.(gif|jpg|png|css)$ make.php?make=%2 [L]

这适用于www.domain.com/car/honda

当我尝试在汽车“模型”上面添加一个新条件和规则时,规则不会触发request_uri(它会继续运行make.php):

RewriteCond %{REQUEST_URI} !model.php
RewriteCond %{REQUEST_URI} /([^/]+)/([^/]+)/([^/])
RewriteRule !\.(gif|jpg|png|css)$ model.php?test=%2&model=%3 [L]

我正在尝试为www.domain.com/car/honda/accord执行不同的文件(model.php)

我错过了什么?希望这是有道理的。非常感谢。

1 个答案:

答案 0 :(得分:1)

你的规则如下:

RewriteEngine On
RewriteBase /car/

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/?$ make.php?make=$1 [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/?$ model.php?test=$1&model=$2 [L,QSA]