Eu tenho um site php. Para todos os links de páginas eu uso foo.htm, e internamente reescrevo isso para foo.php com .htaccess:
RewriteRule ^(.*).htm$ $1.php [NC,L]
Isso funciona muito bem - no entanto, ainda permite que vocêpara usar o URL foo.php. Eu gostaria de 301 redirecionar foo.php para foo.htm para evitar que qualquer resultado antigo do mecanismo de busca foo.php fique por perto e reescreva a URL foo.htm internamente para foo.php
Eu não consigo descobrir como fazer isso sem criar um loop.
Respostas:
0 para resposta № 1Coloque este código no seu arquivo .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 resposta № 2
RewriteRule ^(.*).htm$ $1.php [NC,L]
RewriteRule ^(.*).php$ $1.htm [NC,R]
a opção L pára o mecanismo de reescrita, impedindo um loop.