2010-12-28 3 views
7

Приветствую!замена .php ext .html через .htaccess

Я пытаюсь заменить .php расширения с .html

До сих пор я получил:

RewriteRule ^(.*)\.html $1.php 

... это прекрасно работает, когда URL как /site/page.html вводится (и page.html не физически есть но page.php.).

Однако то, что я хотел бы иметь, это когда /site/page.php введено зрителем видит только /site/page.html в браузере.

Является ли это выполнимым или мне нужно настроить явные переадресации для каждой страницы? :-(

Заранее спасибо

пс:. Устр среда Я использую XAMPP на OS X, если это делает никакой разницы

+3

Если вы так далеко продвинетесь, у вас вообще есть расширение? просто имейте/сайт/ссылку на страницу .php. Он выглядит чище. – RDL

ответ

14
RewriteRule ^(.*)\.php $1.html [R=301,L] 
RewriteRule ^(.*)\.html $1.php 

редактировать после трогания белого кролика из шляпы

RewriteEngine on 
RewriteBase/

RewriteCond %{THE_REQUEST} (.*)\.php 
RewriteRule ^(.*)\.php $1.html [R=301,L] 

RewriteCond %{THE_REQUEST} (.*)\.html 
RewriteRule ^(.*)\.html $1.php [L] 
+0

... что-то не так, когда я вхожу «http: //localhost/site/index.php», я получаю «http: //localhost/Applications/XAMPP/xamppfiles/htdocs/site/index.html», не уверен, что сделать из этого – vector

+0

RewriteBase/должен сделать трюк –

+0

это ставит мой Apache в бесконечный цикл –

-1

Дайте это попробовать:

RewriteEngine on 
RewriteBase/
RewriteRule ^(.*)\.html$ $1.php [L] 
-2

Я думаю, что это очень просто

AddType application/x-httpd-php .html 

это просто обрабатывать каждый .html файл как обычный .php

если вы хотите это только для текущей директории

<Files *.html> 
ForceType application/x-httpd-php 
</Files> 
0
RewriteEngine on 
RewriteBase/

RewriteCond %{THE_REQUEST} (.*)\.php 
RewriteRule ^(.*)\.php $1.html [R=301,L] 

RewriteCond %{THE_REQUEST} (.*)\.html 
RewriteRule ^(.*)\.html $1.php [L] 
Смежные вопросы