Почему это правило перезаписи не работает? - PullRequest
0 голосов
/ 15 сентября 2011

Я пытаюсь перейти от

http://domain.site.com/folder/profile.php?name=some_person

на URL-адрес уборщика

http://sub1.site.com/folder/some_person

В моем .htaccess у меня есть соответствующий раздел:

#Prevent from overriding actual directories and files

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f 

# Rewrite user URLs
#   Input:  folder/NAME/
#   Output: profile.php?name=NAME
RewriteRule ^folder/(\w+)/?$ profile.php?name=$1

Однако, когда я иду на

http://sub1.site.com/folder/fred

например (где fred является действительным пользователем), я получаю 404 страница не найдена ошибка

Что я делаю не так? Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 сентября 2011

Кстати, вы не упомянули имя домена в результате, ваш текущий домен и домен результата отличаются, я думаю, что это опечатка, но если вы считаете, что это не так, попробуйте следующее правило.

Попробуйте:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{HTTP_HOST} ^sub1.site.com$
RewriteCond %{REQUEST_URI} ^/folder
RewriteRule ^/folder/(\w+)/?$ http://domain.site.com/folder/profile.php?name=$1 [QSA]

Примечание. Если вы считаете, что домен такой же, просто удалите домен из правила.

Вы можете проверить правило перезаписи вэта ссылка: http://martinmelin.se/rewrite-rule-tester/

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

Измените свою последнюю строку на:

RewriteRule ^folder/(\w+)/?$ profile.php?name=$1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...