我使用这些规则:
RewriteEngine on
RewriteRule ^robots.txt$ - [L]
RewriteRule ^favicon.ico$ - [L]
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/?$ index.php?id=$1&id2=$2&id3=$3&id4=$4 [QSA,L]
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/?$ index.php?id=$1&id2=$2&id3=$3 [QSA,L]
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/?$ index.php?id=$1&id2=$2 [QSA,L]
RewriteRule ^([^(/\.)]+)/?$ index.php?id=$1 [QSA,L]
在我的网络演示文稿中效果很好,但是当我想进入管理部分并输入 / admin 时,我被重定向到 admin /?id = admin (错误页面) - 对于显示登录表单,我必须输入 /admin/index.php 而不是简单的 admin 。
你能帮助我,如何解决这个问题?
由于
答案 0 :(得分:1)
您应该有一条通过index.php推送所有内容的规则,而不是使用$_SERVER
变量来管理这些页面。
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
这只是我的建议,但是在回答原始问题时,请将此作为您的第一条规则:
RewriteRule ^/admin$ index.php?id=admin [QSA,L]
答案 1 :(得分:1)
所以,我通过这种方式解决了这个问题:
RewriteRule ^(admin)/(.*)$ $1/$2 [L]