.htaccess mod_rewrite + $ _GET не работает - PullRequest
0 голосов
/ 07 октября 2011

У меня есть следующая строка mod_rewrite (это единственная строка в файле .htaccess). Это работает, когда я изменяю имя на другое, отличное от login, но по какой-то причине не может передать $_GET['initials'], когда это имя совпадает с реальным сценарием. Это как-то перезаписывает свою собственную перезапись?

RewriteRule ^login/([a-z]{1,5}) login.php?initials=$1 [L]

Edit:

Глядя на $ _SERVER, эта страница загружается PHP:

'PHP_SELF' => string '/admin/login.php/abc' (length=19)

где 'abc' - это предоставленные инициалы. Поэтому он полностью отбрасывает строку запроса и пытается загрузить эту страницу, которая каким-то образом загружает login.php, а не 404, даже если каталог / abc не существует?

Ответы [ 2 ]

0 голосов
/ 14 сентября 2015

Это в комментариях выше, но это не говорит вам, что делать. Options -Multiviews Options +FollowSymLinks RewriteEngine On RewriteBase /SUBDIRECTORY_NAME_HERE/ RewriteRule ^login/([^/]*)/$ /login.php?initials=$1 [L]

0 голосов
/ 07 октября 2011

Попробуйте использовать это вместо:

RewriteEngine On
RewriteBase /SUBDIRECTORY_NAME_HERE/
RewriteRule ^login/([^/]*)/$ /login.php?initials=$1 [L]

Может также помочь, если вы добавили подкаталог перед login.php.

RewriteRule ^login/([^/]*)/$ /SUBDIRECTORY_NAME_HERE/login.php?initials=$1 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...