Как мне использовать .htaccess для принудительного использования www.при использовании Zend Framework
-
21-08-2019 - |
Вопрос
Я хочу принудительно создать 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
Решение
В первый раз не забудьте включить перезапись ("RewriteEngine включен").Последняя строка важна, если вы используете 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
Другие советы
Не забывайте игнорировать поддомены при перенаправлении на www.
http://www.theblogaholic.com/2011/01/16/force-www-using-htaccess-except-for-subdomains/