Pergunta

Eu quero forçar uma www. prefixo no meu site usando um redirecionamento .htaccess 301. Atualmente, estou tentando:

RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]

que normalmente funciona, mas eu estou usando o Zend Framework que faz com que todos os pedidos para ser redirecionado de volta para http: //www.mysite.com/index.php independentemente do pedido inicial.

Por exemplo ...

http://mysite.com/blog, 
http://mysite.com/contact,
http://mysite.com/blog/this-is-my-article,

serão todos redirecionados para http://www.mysite.com/index.php

No entanto, se eu inicialmente solicitar um arquivo específico, como ...

http://mysite.com/some-file.htm

O redirecionamento funciona corretamente, redirecionando para http://www.mysite.com/some- file.htm

Foi útil?

Solução

Na primeira vez, não se esqueça de ativar a reescrita ( "RewriteEngine on"). A última linha é importante se você usar o Zend Framework.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]
RewriteRule !\.(pdf|php|js|ico|txt|gif|jpg|png|css|rss|zip|tar\.gz)$ index.php

Agora, a url ...

http://mysite.com/some-file.htm

... redirecionamento para http://www.mysite.com/some-file. htm mas usar o index.php

Outras dicas

Não se esqueça de ignorar sub-domínios, quando re-direcionar para www.

http: // www .theblogaholic.com / 2011/01/16 / force-www-usando-htaccess-exceto-for-subdomínios /

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top