我有一个工作重写规则 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只接受那些带有公司名称且没有城市的人。
答案 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]