/ / .htaccess: riscrive gli URL di .htm internamente a .php, ma reindirizza anche gli URL .php a .htm - apache, .htaccess, riscrittura mod

.htaccess: riscrivi gli URL .htm internamente a .php, ma reindirizza anche gli URL .php a .htm - apache, .htaccess, riscrittura mod

Ho un sito PHP. Per tutti i link alle pagine uso foo.htm, e riscrivilo internamente a foo.php con .htaccess:

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

Funziona alla grande, tuttavia ti consente comunqueusare l'URL di foo.php. Vorrei reindirizzare foo.php a foo.htm per impedire che qualsiasi vecchio motore di ricerca di foo.php risultasse sospeso e riscritto l'URL di foo.htm internamente a foo.php

Non riesco a capire come farlo senza creare un ciclo.

risposte:

0 per risposta № 1

Inserisci questo codice nel tuo file .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 per risposta № 2
RewriteRule ^(.*).htm$ $1.php [NC,L]
RewriteRule ^(.*).php$ $1.htm [NC,R]

l'opzione L arresta il motore di riscrittura, impedendo un loop.