2010-12-28 17 views
7

¡Saludos!reemplazando .php ext con .html a través de .htaccess

que estoy tratando de reemplazar las extensiones .php .html con

Hasta ahora he conseguido:

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

... es que funciona muy bien cuando se introduce URL como /site/page.html (y no lo hace físicamente page.html existe pero page.php hace).

Sin embargo, lo que me gustaría tener es cuando se ingresa /site/page.php, el espectador solo ve /site/page.html en la ubicación del navegador.

Es eso factible o tengo que configurar redirecciones explícitas para cada página? :-(

Gracias de antemano

ps: Dev. Entorno que estoy usando es XAMPP en OS X si hace alguna diferencia

+3

Si vas tan lejos, ¿por qué siquiera tienes una extensión? solo tiene/sitio/página referencia la página .php. Se ve más limpio. – RDL

Respuesta

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

edición después de tirar conejo blanco de la chistera

RewriteEngine on 
RewriteBase/

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

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

... algo anda mal, cuando entro en "http: //localhost/site/index.php" Me "http: //localhost/Applications/XAMPP/xamppfiles/htdocs/site/index.html", sin saber qué para hacer de él – vector

+0

RewriteBase/debería hacer el truco –

+0

esto pone mi Apache en bucle sin fin –

-1

seguirlo:

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

creo que esto es mucho más sencilla

AddType application/x-httpd-php .html 

que acaba de procesar todos los archivos .html como .php normales

si lo quieres sólo para directorio actual

<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] 
Cuestiones relacionadas