http://www.domain.com/folder/file?x=1&y=2
更改为:
http://www.domain.com/folder/file/1/2/
http://www.domain.com/folder/?x=1
更改为:
http://www.domain.com/folder/1/
我试过了:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder/(.*)/$ folder/index.php?x=$1 [L]
RewriteRule ^folder/file/(.*)/(.*)/$ folder/file.php?x=$1&y=$2 [L]
但这不起作用,有没有人知道为什么?
当我取出第一条规则时,我可以通过以下方式访问第二条规则:
http://www.domain.com/folder/1/2/
但不是:
http://www.domain.com/folder/file/1/2/
上帝,我希望我不会混淆任何正在阅读这个大声笑的人,我希望它有意义
答案 0 :(得分:1)
尝试
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder/file/(.*)/(.*)/ /folder/file.php?x=$1&y=$2 [L]
RewriteRule ^folder/(.*)/ /folder/index.php?x=$1 [L]
规则的顺序很重要。您应该始终将具有最多规则的规则放在第一个规则之前,然后停止,因为(.*)
捕获file
时始终为真。
答案 1 :(得分:0)
您是否尝试在文件夹名称前添加/?
RewriteRule ^folder/(.*)/$ /folder/index.php?x=$1 [L]
RewriteRule ^folder/file/(.*)/(.*)/$ /folder/file.php?x=$1&y=$2 [L]