我有以下.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ((^((/)*admin(/)+).*)|(^admin$)) $0 [NS]
RewriteRule ^((?!\.).)*$ "system/scripts/startPageProcess.php?slug=$0" [NS]
</IfModule>
如果一个URL以“admin /”开头或等于“admin”,则不应该有重定向。 如果URL是差异,则应使用URL调用startPageProcess.php作为“slug”-Get-Parameter(例如“asdf”重定向到“system / scripts / startPageProcess.php?slug = asdf”)。 到目前为止这是有效的。
现在存在以下问题:如果我调用“admin”,则没有重定向 - 到目前为止,这么好 - 但浏览器中显示的URL更改为:“admin /?slug = admin”我没有想法为什么。
我真的不是一个.htaccess-expert,所以我不知道为什么会这样,你如何解决这个问题,或者你是否可以让整个事情变得更容易。所以请帮忙。
答案 0 :(得分:0)
您需要添加最后一个规则标志,以便管理规则为
RewriteRule((^((/) admin(/)+)。)|(^ admin $))$ 0 [NS,L]
答案 1 :(得分:0)
你的规则如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^admin(/.*)?$ - [L]
RewriteRule ^([^./]+)/?$ system/scripts/startPageProcess.php?slug=$1 [L,QSA]
</IfModule>