2015-06-18 3 views
0

Я пытаюсь сделать 2 переадресации с использованием .htaccess.Сообщение REDIRECT LOOP на домашней странице сайта

  1. Переместить все страницы сайта с .html на .php
  2. Удалить index.php из URL хозяев страницы.

Вот что у меня есть сейчас:

### 1_move from html to php 
RedirectMatch 301 (.*)\.html$ http://example.com$1.php 

### 2_remove index.php 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$/[R=301,L] 

Каждый из переадресовывает прекрасно работает сам по себе, но они не хотят работать вместе. На самом деле все страницы, кроме index.php, работают нормально. И вместо домашней страницы я получаю сообщение:

Эта страница содержит переадресацию.

Если я прокомментирую любую переадресацию, возвращается домашняя страница.

Как я могу дружить с ними? Что я делаю не так? Любая помощь приветствуется.

+0

Я не уверен, как ваша проблема вызвана, но вы можете взглянуть на «RewriteLog» и «RewriteLogLevel», чтобы отладить вашу проблему. –

+0

Я бы не использовал как mod_alias, так и mod_rewrite вместе, но попробуйте очистить кеш, так как вы делаете 301. –

ответ

0

Решено:

### Switch from .html to .php 
RewriteRule ^(.*)\.html /$1.php [R=301,L] 

### removes index.php 
RewriteRule ^index.php$/[QSA,R] 

Таким образом, они работают вместе.

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