Пожалуйста, помогите с этой проблемой mod_rewrite - PullRequest
0 голосов
/ 22 августа 2011

Эта действующая система должна разрешать периоды (.), необязательно, внутри условия перезаписи.

Например: /john.doe должно работать, так как мы разрешаем точки в наших именах пользователей.

Однако, когда я добавляю . или \\. или [.] к следующему правилу перезаписи, оно либо застревает в бесконечном цикле, и приходится перезапускать apache2. Удивительно, но поведение изменилось, и я не уверен, почему. Теперь он просто добавляет новую строку к существующему URL.

Например: /john.doe станет /john.doe/?pg=user&username=john.doe

RewriteRule ^/([a-z0-9_]+)$ /?pg=user&username=$1 [NC,PT]

Я схожу с ума, пытаясь исправить это, пожалуйста, помогите!

1 Ответ

0 голосов
/ 23 августа 2011

Это должно работать (я говорю «должен», так как я не знаю, как настроена вся ваша система и какие другие перенаправления и т. Д. - я вижу, вы используете флаг PT (возможно, вы используете псевдонимы)):

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule ^([a-z0-9_\.]+)$ /index.php?pg=user&username=$1 [NC,QSA,L]

OR

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z0-9_\.]+)$ /index.php?pg=user&username=$1 [NC,QSA,L]

Я указал файл сценария напрямую - гораздо проще написать правило, если вы знаете, как оно работает.

...