检查apache是否安装了使用htaccess安装的ssl证书
问题描述:
在运行任何RewriteCond或RewriteRule for https之前,有没有办法检查apache是否安装了使用htaccess安装的ssl证书?检查apache是否安装了使用htaccess安装的ssl证书
例如为:
阿帕奇已经再装SSL证书 的RewriteCond {} HTTPS!上 重写规则%{HTTP_HOST}%{REQUEST_URI}
谢谢!
答
而不是检查“如果SSL证书不存在”,勾选“如果SSL模块上”的 - 后者需要通过自身的证书
<IfModule mod_rewrite.c>
RewriteEngine on
<IfModule mod_ssl.c>
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
</IfModule>
答
如果没有安装的Apache证书,该协议不能可能是HTTPS。
不一定。加载mod_ssl这一事实并不意味着它已经被配置。 – Bruno 2012-08-05 15:50:32
您发布的代码不符合您的要求。它不测试SSL是否“开启”,仅测试SSL模块是否已加载。没有答案。 – EJP 2012-08-05 21:28:47
@EJP:问题是,如果ssl引擎是* on *,所有SSL_ *变量都将是有意义的,只有在您已经使用SSL的情况下才会发生这种情况...所以唯一可以看到的其他选项是检查ssl **可以被使用,并且只有当模块被启用时才会发生......我在哪里错了? – poncha 2012-08-06 12:54:06