/ / .htaccess: reescribe .htm urls internamente a .php, pero también redirige .php urls a .htm - apache, .htaccess, mod-rewrite

.htaccess: reescribe las urls .htm internamente en .php, pero también redirige las urls .php a .htm - apache, .htaccess, mod-rewrite

Tengo un sitio php Para todos los enlaces de página, uso foo.htm y reescribo esto internamente en foo.php con .htaccess:

RewriteRule ^(.*).htm$ $1.php [NC,L]

Esto funciona muy bien, sin embargo, todavía te permitepara utilizar la url foo.php. Me gustaría redirigir 301 foo.php a foo.htm para evitar que los antiguos motores de búsqueda de foo.php se queden y reescriban la url de foo.htm internamente a foo.php

No puedo averiguar cómo hacer esto sin crear un bucle.

Respuestas

0 para la respuesta № 1

Ponga este código en su archivo .htaccess:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{THE_REQUEST} ^GETs(.+).php [NC]
RewriteRule ^ %1.htm [R=301,L]

RewriteRule ^(.*).htm$ /$1.php [L,NC]

0 para la respuesta № 2
RewriteRule ^(.*).htm$ $1.php [NC,L]
RewriteRule ^(.*).php$ $1.htm [NC,R]

la opción L detiene el motor de reescritura, impidiendo un bucle.