Смена .htm на .php в ссылке. Нужна помощь в скрипте.

Flintarix

Новичок
Смена .htm на .php в ссылке. Нужна помощь в скрипте.

Ситуация такая. У меня сайт на html (т.е. формат файлов .htm), сейчас он будет на .php . Названия страниц теже.
Можно ли сделать так чтобы поользователь заходя на страницу http://сайт/page.htm переходил на страницу http://сайт/404.htm (с этим проблем нет) на которой выводится правильная ссылка, что-то типа "новая ссылка такая http://сайт/page.php" .

Огромное спасибо за помощь.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
///Ситуация такая. У меня сайт на html (т.е. формат файлов .htm), сейчас он будет на .php .///

Видимо когда переделывали сайт, забыли ссылки изменить?
Или поменяли расширения файлов, а сайт остался старый? Зачем меняли тогда...
 

Flintarix

Новичок
c0dex
чтобы некоторое время пока сайт будет переиндексироваться в поисковиках, посетитель "тупо" не уходил со страницы 404, не получив необходимую информацию.

сейчас вот что нашел http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html . Ушел изучать... ;)

-~{}~ 04.03.06 22:28:

ZN
Спасибо.

Разобрался. Вот решение:
В файл .htaccess вписываем следующее:
# набор правил для обратной совместимости при
# редиректе для document.htm в document.php
# тогда и только тогда когда document.php существует
# однако не является document.htm
RewriteEngine on
# вычленяем базовое имя, и запоминаем его
RewriteRule ^(.*)\.htm$ $1 [C,E=WasHTML:yes]
# делаем редирект на document.php если он существует
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [S=1]
# иначе делаем откат на предыдущий документ
RewriteCond %{ENV:WasHTML} ^yes$
RewriteRule ^(.*)$ $1.htm

PS: И страница 404 не нужна.
 

Develar

Новичок
При перенаправлении лучше R=301 В этом случае агент пользователя поменяет свои закладки, поисковик тоже (по сути должны).
Если ЧПУ, то расширения вообще не нужны.
 
Сверху