каков наилучший способ изменить расширение файла с .htm на .php

#apache #.htaccess #file-extension

#apache #.htaccess #расширение файла

Вопрос:

мне нужно изменить некоторые файлы htm на моем веб-сервере на файлы .php. Эти страницы связаны из разных мест. я не хочу, чтобы они показывали ошибку file not found, когда кто-то пытается получить к ним доступ.

Например, если index.htm необходимо изменить на index.php могу ли я написать перенаправление

      redirect 301 /index.html index.php
  

в моем файле htaccess? Это наилучший подход?

Спасибо

Пради

Ответ №1:

Вы могли бы использовать mod_rewrite. Что-то вроде этого может сработать:

 RewriteEngine on
RewriteRule index.php index.html
  

Вы можете использовать регулярные выражения. Смотрите:
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Ответ №2:

перенаправление 301 /index.html index.php

Это не сработает, если вы отправляете данные через POST. Все остальное, кроме переименования файлов и перезаписи ссылок, является уродливым и временным взломом. Черт возьми, вы можете избежать этого, поместив каждую «страницу» в свой собственный каталог и сославшись на каталог в URL-адресе и указав файл по умолчанию через конфигурацию DirectoryIndex.

Вы не упомянули, на какой ОС это запущено — если это Linux / Unix / BSD, то вы могли бы просто использовать sed для изменения всех абсолютных ссылок (и grep для поиска относительных, которые вам, вероятно, потребуется отредактировать вручную).

Что-то вроде….

 find /path/to/root/of/docs -type f -exec sed -ibkup 's//index.html//index.php/g' {} ;
find /path/to/root/of/docs -type f -exec grep -l 'index.html' {} ;