当用户在地址栏中输入网址http://localhost/systems/admin
时,我需要将用户重定向到网页http://localhost/systems/admin/login/
输入/admin
当我输入/admin/
(注意尾随斜杠)时,它无法正常工作,它会将我重定向到其他某个页面http://localhost/systems/user/login
,但我希望它将我重定向到同一页面http://localhost/systems/admin/login/
以下是我的整个.htaccess代码
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /systems/
RewriteRule ^admin$ http://localhost/systems/admin/login/ [R=301,L]
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
答案 0 :(得分:1)
使用.htaccess配置,您只能将/admin
重定向到/admin/login/
。
为了支持可能的尾随斜杠,您应该选择以下内容:
RewriteRule ^admin/?$ http://localhost/systems/admin/login/ [R=301,L]
一般来说,我只会坚持使用一种符号(带或不带尾部斜杠)并添加一条始终纠正错误符号的规则(即添加或删除尾部斜杠)。删除尾部斜杠的规则可以是:
RewriteRule ^(.*)/$ /$1 [L,R=301]
使用这样的规则,您可以坚持原始的重写规则。但是,在这种情况下,您应该始终注意返回没有尾部斜杠的地址,以避免在没有必要时重写:
RewriteRule ^admin$ http://localhost/systems/admin/login [R=301,L]