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

Я использовал следующий код для перенаправления пользователей в домен более 2 лет.

Допустим, пользователь перейдет на my-example.com, страница индекса - это шаблон, который по умолчанию загружаетблог, поэтому фактический URL-адрес - my-example.com/index.php?nid=blog, однако URL-адрес, отображаемый в браузере, - my-example.com/blog.

Я использовал файл .htaccess с приведенным ниже кодом, чтобы замаскировать этот URL и сделать его более удобным для чтения и SEO: -

RewriteEngine On

RewriteRule ^blog(/)?$ /index.php?nid=blog [NC,L] 
RewriteRule ^blog/([A-Za-z0-9-]+)(/)?$ /index.php?nid=blog&article=$1 [NC,L] # Handle product requests

В файле index.php я былиспользуя приведенный ниже код для отправки пользователей, переходящих на my-example, на my-example.com/blog

if ($nid == "") {
    header("Location: ./blog/");

}

В php 4 это работало нормально (по умолчанию для моего хоста).Однако мне нужно использовать PHP 5 для моего нового сайта, поэтому я добавил AddType x-mapp-php5 .php в начало .htaccess, чтобы Apache использовал php 5, однако это привело к перенаправлению заголовка php.

Chrome и Firefox выдают схожие ошибки, что страница не перенаправляет должным образом способом, который никогда не завершится - цикл перенаправления.

Я не изменил php в моем шаблонедобавлен только AddType и включение для нового контента.У кого-нибудь есть идеи?

Я пытался использовать перенаправление .htaccess на ./blog, но, похоже, это вызывает ту же ошибку.

1 Ответ

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

Возможно, ранее вы использовали register_globals.

Вместо этого читайте nid из $ _GET ["nid"].

$nid = @$_GET["nid"];

if ($nid == "") {
    header("Location: ./blog/");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...