重写2或3个“子文件夹”的URL

时间:2014-05-27 19:11:36

标签: .htaccess mod-rewrite

我有一个工作重写规则 domain.com/companyname

它是一个通配符规则,因为我不知道“公司名称”的位置是什么。和规则来处理存在的网址 到目前为止一切顺利

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule   ^(.*?)$/  profile/index.php?company=$1

但有时我可能需要添加额外的子文件夹,如果公司有多个部门

domain.com/companyname/london/或domain.com/companyname/berlin 以下规则将执行此操作

    RewriteRule   ^(.*?)/(.*?)$  profile/index.php?company=$1&city=$2

但问题是第一条规则还会捕获带有城市子文件夹的网址。

我如何使两个规则都有效?我想我需要确保规则1只接受那些带有公司名称且没有城市的人。

1 个答案:

答案 0 :(得分:0)

您可以先获得更具体的规则:

RewriteEngine On

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

RewriteRule ^([^/]+)/(.+?)/?$ profile/index.php?company=$1&city=$2 [L,QSA]

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