.htaccess - переписать логин пользователя в URL - PullRequest
0 голосов
/ 15 ноября 2011

Мне нужно переписать URL с логином пользователя, и я использую Zend Framework. .htaccess проекта ZF:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L] 

RewriteRule ^.*$ index.php [NC,L]

Как добавить правило с перезаписью

http://yourdomain.com/user/TOMMY

до

http://yourdomain.com/user/?login=TOMMY

? Где "TOMMY" - это логин пользователя.

Важно: после перезаписи URL в браузере остается без изменений.

Я могу добавить следующее правило:

RewriteRule ^user/([a-zA-Z0-9]+)$ /user/?login=$1 [L,R]

Но это не правильно, потому что сервер перенаправляет браузер на другую страницу. Tnx.

1 Ответ

0 голосов
/ 15 ноября 2011

Вам нужно изменить другое правило, чтобы оно не переписывало URI, начинающиеся с "/ user /"

RewriteCond %{REQUEST_URI} !^/user/
RewriteRule ^.*$ index.php [NC,L]

Теперь вы можете переписать запросы / user, используя ваше правило:

RewriteRule ^user/([a-zA-Z0-9]+)$ /user/?login=$1 [L]

За исключением того, что вы не хотите, чтобы R в скобках, потому что это перенаправит браузер и изменит то, что находится в адресной строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...