![禁止 http 通信](https://linux22.com/image/721741/%E7%A6%81%E6%AD%A2%20http%20%E9%80%9A%E4%BF%A1.png)
我在 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>
更多信息可参见文档链接