.htaccess: переписать URL-адреса .htm внутри .php, но также перенаправить URL-адреса .php в .htm - PullRequest
1 голос
/ 02 июня 2011

У меня есть сайт php. Для всех ссылок на страницы я использую foo.htm и внутренне переписываю это в foo.php с помощью .htaccess:

RewriteRule ^(.*)\.htm$ $1.php [NC,L]

Это прекрасно работает, однако позволяет использовать URL-адрес foo.php. Я бы хотел 301 перенаправить foo.php в foo.htm, чтобы предотвратить зависание любых старых результатов поисковой системы foo.php, и переписать URL-адрес foo.htm внутри foo.php

Я не могу понять, как это сделать без создания цикла.

Ответы [ 2 ]

0 голосов
/ 02 июня 2011

Поместите этот код в ваш файл .htaccess:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{THE_REQUEST} ^GET\s(.+)\.php [NC]
RewriteRule ^ %1.htm [R=301,L]

RewriteRule ^(.*)\.htm$ /$1.php [L,NC]
0 голосов
/ 02 июня 2011
RewriteRule ^(.*)\.htm$ $1.php [NC,L]
RewriteRule ^(.*)\.php$ $1.htm [NC,R]

опция L останавливает механизм перезаписи, предотвращая цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...