我正在尝试匹配这三条路线:
system/session
teams
teams/529f3d87b3f7e2c73d100000
我有以下规则:
RewriteRule ([-A-Za-z0-9]+)/([-A-Za]+)$ /index.php?__module=$1&__action=$2 [L,QSA]
RewriteRule ^([-A-Za-z0-9]+)$ /index.php?__module=$1&__action=index [L,QSA]
RewriteRule ([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ /index.php?__module=$1&__action=index&id=$2 [L,QSA]
但是,当我转到system/session
时抓住teams/529f3d87b3f7e2c73d100000
的规则集并制作session = $_GET['id']
而不是$_GET['__action']
这有明显的解决方案吗?
答案 0 :(得分:1)
那是因为你的正则表达式对第一条规则是错误的:
RewriteRule ([-A-Za-z0-9]+)/([-A-Za-z]+)$ /index.php?__module=$1&__action=$2 [L,QSA]
您错过了范围的-z
部分,只匹配“a”。
您还应该继续向所有人添加^
个匹配项:
RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z]+)$ /index.php?__module=$1&__action=$2 [L,QSA]