Требуется переименовать php в html через RewriteRule

youdir
На сайте с 29.11.2006
Offline
67
1648

Собственно, прошу помочь, кто знает как правильно переименовать файлы php в html через .htaccess функцией RewriteRule.

Требуется переименовать:

имя_папки/имена_файлов.php в имя_папки/имена_файлов.html

Дайте пожалуйста пример записи в .htaccess

siv1987
На сайте с 02.04.2009
Offline
427
#1

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.+)\.html $1.php [L]

Запрос /file.html на серверу будет заменятся на file.php

Работать будет только при запросе несуществующих html файлов

youdir
На сайте с 29.11.2006
Offline
67
#2
siv1987:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.html $1.php [L]

Запрос /file.html на серверу будет заменятся на file.php
Работать будет только при запросе несуществующих html файлов

Спасибо, уже что-то! :)

А как правильно довавить имя_папки, чтобы получалось:

имя_папки/имена_файлов.php в имя_папки/имена_файлов.html

siv1987
На сайте с 02.04.2009
Offline
427
#3

Ошибся неверное немного. Вместо (.+)\.html заменит на (.+)\.php а $1.php замените на $1.html

Тогда будет наоборот.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#4

Вот это если Вы хотите адрес www.site.ru/directory/file.php

И чтобы по этому адресу открывался file.html

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^directory/(.+)\.php directory/$1.html [L]

Ежели наоборот хотите:

RewriteRule ^directory/(.+)\.html directory/$1.php [L]

Подпись))
youdir
На сайте с 29.11.2006
Offline
67
#5

Спасибо большое за Ваши ответы - всё работает :)

Столкнулся с проблемой, как можно закрыть чтение файла www.site.ru/directory/file.php, чтобы читался только www.site.ru/directory/file.html 😕

Это необходимо чтобы исключить дублирование страниц. Это можно реализовать файлом .htaccess, или это уже php код надо чем-то дополнить?

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#6

И то и то.

Можно на ПХП чекать, а можно через ХТАЦЦЕСС.

RewriteEngine On

RewriteRule ^directory/(.+)\.php directory/$1.html [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^directory/(.+)\.html directory/$1.php [L]

В итоге мы на серваке имеет все файлы с расширением php. А доступ к ним будет проходить через file.html и при запросе file.php будет 301 редирект(перемещен навсегда) на file.html.

Вы это имели ввиду?

Если не это, то объясните ситуацию на пальцах.

Типа так:

Ребята, есть сайт, у него есть такие-то такие-то файлы, надо чтобы доступ к ним был так и так, а так не было:)

youdir
На сайте с 29.11.2006
Offline
67
#7

Да, всё именно так! Это то что требовалось.

Появилась потребность сделать статичный сайт (жлобский, которому необходим минимум ресурсов), но так, чтобы была возможность подключать блоки (например хеадер, футер, адс) через php include, чтоб потом не править их в каждом созданном файле страницы. Почему?.. Руками можно крутить-вертеть каждую страницу как захочется.

Спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий