Перенаправление на ту же страницу с помощью .htaccess - PullRequest
1 голос
/ 15 ноября 2010

Из моего файла .htaccess:

RewriteRule ^showPAGE.php page [NC,R=301]
RewriteRule ^page showPAGE.php [NC,L]

Я хочу, чтобы пользователи, переходящие на URL domain.com/showPAGE.php, были перенаправлены на domain.com/page.Когда вводится domain.com/page, я хочу, чтобы он отображал содержимое файла showPAGE.php.Это возможно сделать?Выше приведен бесконечный цикл перенаправления.

Спасибо

Ответы [ 2 ]

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

Вы пытаетесь сделать что-то, что очень сложно. Проблема в том, что по своей природе директива RedirectRule всегда снова запускает полный набор правил. Вы можете выйти из цикла, только когда получите окончательный URL-адрес, который не соответствует ни одному из правил, и это сложная часть, поскольку вы повторно используете имя showPAGE.php.

Моя лучшая попытка на данный момент заключается в добавлении фиктивной скрытой строки:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/showPAGE\.php
RewriteCond %{QUERY_STRING} !^internal
RewriteRule ^ http://%{HTTP_HOST}/page [NC,R=301,L]

RewriteRule ^page$ showPAGE.php?internal [NC,L]

Это работает, но это не приятно. Определенно, проще перенаправить из PHP или просто выбрать другое имя.

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

Перенаправление с showPAGE.php на page должно иметь [L], чтобы он сразу прекратил обработку и перенаправление, а не продолжал и применял другие правила (которые сразу отображают его обратно в showPAGE.php) , Попробуйте это:

RewriteRule ^showPAGE.php page [NC,R=301,L]
RewriteRule ^page showPAGE.php [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...