2015-06-30 2 views
0

Когда пользователь вводит URL http://localhost/systems/admin в адресной строке мне нужно перенаправить пользователя на страницу http://localhost/systems/admin/login/Htaccess перенаправление на ту страницу

Он отлично работает при входе /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

Почему downvote? По крайней мере, есть любезность, чтобы добавить комментарий. – D555

ответ

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] 
Смежные вопросы