2011-12-30 2 views
0

Я в настоящее время использую этот тип mod_rewrite для моей страницы ... но я думаю, что слишком долго. Должен быть более короткий способ написания того же кода? и увеличивает ли он какую-либо нагрузку на сервер?лучший способ написать этот mod_rewrite?

RewriteRule ^Login/$ login.php [L] 
RewriteRule ^login/$ login.php [L] 
RewriteRule ^Login$ login.php [L] 
RewriteRule ^login$ login.php [L] 

первая линия для нормальной URL - "HTTP: // сайт/Логин /"
второй один, если пользователь не ввести капитал "L" - «HTTP: // сайт/login/"
третий, если он не добавляет косую черту на первом URL-адресе -" http: // сайт/Логин "
четвертый, если он не добавляет косой черты на втором URL-адресе - "HTTP: // сайт/Логин"

ответ

2

Попробуйте это регулярное выражение:

^[Ll]ogin/?$ 

[Ll] соответствует L или l, знак вопроса означает, что предыдущий символ (косая черта) является необязательным.

+0

спасибо за такой быстрый ответ! это помогло. – MaSK

2

В дополнение к ответу @ milan вы также можете указать флаг NC, из которого правило перезаписи не чувствительно к регистру.

RewriteRule ^login/?$ login.php [NC,L] 

Reference

+0

Это не соответствовало бы тем, что делали предыдущие правила. (Это будет больше похоже на LoGiN.) – nitro2k01

+0

Если это проблема, у автора этого вопроса есть гораздо более серьезные проблемы. Если вас беспокоит многократное написание URL-адреса, просто разрешите ввод в нижнем регистре. –

0

Например:

RewriteRule ^[Ll]ogin/?$ login.php [L] 

Но я должен спросить, почему ?? Почему бы просто не выбрать один URL-адрес и придерживаться его? Вы ожидаете, что люди будут вводить URL-адрес вручную?

+0

нет его не that.i может придерживаться одного url.but я не могу доверять посетителям/пользователи будут придерживаться one.i испытали такие проблемы с предыдущей версией на моем сайте и не хотят повторять то же самое в этом. – MaSK

0
RewriteRule ^login/?$ login.php [L,NC] 

Должно быть сделано. NC для чувствительности к регистру и? делает косую черту опциональной.

Смежные вопросы