2009-03-23 3 views
3

Я хочу заставить www. префикс на моем сайте, используя перенаправление .htaccess 301. В настоящее время я пытаюсь:Как использовать .htaccess для принудительного использования www. используя Zend Framework

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

которое обычно работает, но я использую Zend Framework, которая вызывает все запросы перенаправляются обратно http://www.mysite.com/index.php независимо от первоначального запроса.

Например ...

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

все будет перенаправлен на http://www.mysite.com/index.php

Однако, если я сначала запросить конкретный файл, например ...

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

редирект работает правильно, перенаправляется на http://www.mysite.com/some-file.htm

ответ

4

В первый раз не забудьте включить переписывание («RewriteEngine on»). Последняя строка важна, если вы используете 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 

Теперь URL ...

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

... перенаправлять http://www.mysite.com/some-file.htm но использовать index.php