我有一个(希望)为我的网站之一,我似乎无法弄清楚如何正确部署常见的情况。
我有以下网站和example.com目录:
这些需要SSL:
这些需要是非SSL的:
这些需要同时支持:
我在我的/sites-available/example.com文件中有两个虚拟主机声明, 最高的是*:443,第二个是*:80。
由于我有两个虚拟主机声明,如果有请求进入443,则使用顶层虚拟主机,如果是端口80请求,则使用顶端虚拟主机。
然而,我似乎无法使用SSLRequireSSL强制执行我的SSL要求,因为我假设端口80请求/pipe理或/订单甚至没有击中*:443虚拟主机。
我应该只拒绝所有/命令和/pipe理在*:80虚拟主机,所以如果你试图要求在80,你会得到一个403禁止?
更好的是,自动redirect到ssl(或后退)
在非ssl vhost中:
Redirect /admin https://example.com/admin Redirect /admin https://example.com/order
在SSL虚拟主机(如果你真的想/地图总是非SSL,保存CPU可能?)
Redirect /maps http://example.com/maps