Yii2将所有网址重定向到https:// www而不使用htaccess

时间:2016-12-14 11:07:39

标签: yii2

我需要能够将所有网址(非www和www)重定向到Yii2中的https://www

我想在不使用.htaccess

的情况下尝试这样做

通过组件中的urlManager创建URL不是问题:

urlManager => [
    'baseUrl' => 'https://www.somesite.com'
]

但是,我正在努力做重定向。我确实看过这篇文章http://www.yiiframework.com/wiki/407/url-management-for-websites-with-secure-and-nonsecure-pages - 在Yii2的背景下有帮助吗?

修改

我在下面的评论中提到了当我在后端文件夹index.php中添加$ _SERVER ['HTTPS'] ='on'时,我得到SSL而无需对.htaccess文件做任何事情。这在\ yii2 \ web \ Request.php中的函数getIsSecureConnection()中使用

本文https://github.com/yiisoft/yii2/issues/9116

中引用了这一点

但是,如果我在前端index.php文件中执行相同操作,则不会出现相同的行为。

例如

http://www.client-site-1.co.uk/backend => https://www.client-site-1.co.uk/backend

(目前我在这个域名上没有SSL!)

http://www.client-site-1.co.uk => http://www.client-site-1.co.uk

任何帮助非常感谢!!

2 个答案:

答案 0 :(得分:1)

我发现这个解决方案就是我在Yii2上所需要的

Force HTTPS on Yii2,扩展了Yii应用程序类

所有功劳归于plm57

答案 1 :(得分:0)

You can do it with Apache without .htaccess
#
# Non www 
#
<VirtualHost *:80>
    ServerName example.com
    # Other alternatives domains:
    ServerAlias example.net www.example.net
    ServerAlias example.org www.example.org

    RedirectPermanent / http://www.example.com/
</VirtualHost>


#
# Main site - www
#
<VirtualHost *:80>
    ServerName www.example.com

    DocumentRoot /var/www/example.com/frontend/web
    # ...
</VirtualHost>