htaccess: como reescrever para limpar urls e redirecionar urls antigas para as novas e limpas? [duplicado]

2

Com o htaccess, estou tentando tornar meus sites limpos. Eu uso URLs muito básicos como: www.mysite.com/pagename.php ("pagename" é variável).

Eu quero www.mysite.com/pagename para exibir o conteúdo de /pagename.php
Então, isso está no meu arquivo htaccess agora:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Mas também quero que meus URLs antigos (/pagename.php), quando chamados, sejam reescritos para www.mysite.com/pagename

Como fazer isso? Eu não consigo entender (ganhe loops o tempo todo) ...

Obrigado antecipadamente!

    
por Sebastian 28.12.2011 / 12:26

1 resposta

0

Adicione outro bloco para definir a reescrita:

Options +FollowSymlinks
RewriteEngine On

RewriteBase /

RewriteRule ^([^\.]+)\.php$ $1 [NC,R=301,L]

RewriteRule ^([^\.]+)$ $1.php [NC,PT,L]

Note que RewriteBase é muito importante aqui. (Veja a documentação em link ) - caso contrário, seus URLs serão reescritos para algo como <hostname>/var/www/pagename.php em vez do esperado <hostname>/index.php .

    
por 28.12.2011 / 15:33