Как я могу использовать .htaccess, чтобы заставить www. при использовании Zend Framework - PullRequest
3 голосов
/ 23 марта 2009

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

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

Ответы [ 2 ]

4 голосов
/ 28 марта 2009

В первый раз не забудьте включить перезапись («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

1 голос
/ 16 января 2011

Не забывайте игнорировать субдомены при перенаправлении на www.

http://www.theblogaholic.com/2011/01/16/force-www-using-htaccess-except-for-subdomains/

...