2010-11-15 2 views
1

Из моего файла .htaccess:Перенаправление одной странице с .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. Это можно сделать? Вышеупомянутый результат представляет собой бесконечный цикл перенаправления.

Благодаря

ответ

0

Вы пытаетесь сделать что-нибудь очень сложно. Проблема в том, что по дизайну директива 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

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

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

Я все еще получаю «Эта веб-страница имеет цикл перенаправления». :/ – Joel

+0

Я действительно пробовал это сейчас, пытаясь использовать разные комбинации «RewriteRule», вставляя некоторые «RewriteCond'ы, используя« Alias ​​»и« Redirect », все безрезультатно ... Я думаю, что застрял , Вы пытались обработать showPAGE.php -> перенаправление страницы внутри showPAGE.php? –

+0

Крис, в первую очередь спасибо за усилия! :) Я могу сделать это на странице PHP, и я также могу переименовать его. Просто задавался вопросом, есть ли короткий (более удобный и эффективный) способ сделать это. Я просто переименую файл. Еще раз спасибо! – Joel

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