禁止 http 通信

禁止 http 通信

我在 GCP 上运行带有 apache2 和 php 7 的 Ubuntu 实例。此外,我使用 CloudFlare 作为我的 SSL 证书提供商。

在 GCP 中,如果我配置“允许 http 和 https”,则该网站可以同时使用 http 和 https。不过我必须专门将 https 前缀添加到域中,这样它才能安全地运行。

但是,如果我在 GCP 中禁止使用 http,而只允许使用 https,那么即使添加了 https 前缀,我也无法进入我的网站。

我在 GCP 或 Apache2 中缺少什么配置吗?

我将非常感激你的帮助。

答案1

尝试在apache配置中简单添加重定向规则以进行监听port 80

<VirtualHost *:80>
        Redirect permanent / https://your_domain_name.com
</VirtualHost>

答案2

Apache 允许您创建重定向以满足您的需要:

使用 Redirect 进行临时重定向

<VirtualHost *:80>
    ServerName www.domain1.com
    Redirect / http://www.domain2.com
</VirtualHost>

<VirtualHost *:80>
    ServerName www.domain2.com
    . . .
</VirtualHost>

使用 RedirectMatch 进行临时重定向

<VirtualHost *:80>
    ServerName www.domain1.com
    RedirectMatch ^/(.*)$ http://www.domain2.com/$1
</VirtualHost>

<VirtualHost *:80>
    ServerName www.domain2.com
    . . .
</VirtualHost>

永久重定向

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName domain1.com
    ServerAlias www.domain1.com    
    DocumentRoot /var/www/domain1.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    RedirectMatch permanent ^/(.*)$ http://domain2.com/$1
</VirtualHost>

更多信息可参见文档链接

相关内容