【发布时间】:2015-08-21 21:56:08
【问题描述】:
请求:
我的证书不允许使用通配符,仅适用于https://example.com。
我想重定向来自:http(s)://*.example.com --> https://example.com 的所有流量。
问题:
从http://*.example.com/* 到https://example.com/* 工作正常
我在从以下位置访问时收到错误 NET::ERR_CERT_COMMON_NAME_INVALID:
https://*.example.com/* 到 https://example.com。
到目前为止我尝试过的...
这是我的default.conf 虚拟主机配置文件:
<VirtualHost *:80>
NameVirtualHost *:80
ServerName example.com
ServerAlias *.example.com
Redirect permanent / https://example.com/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
NameVirtualHost *:443
ServerName example.com
ServerAlias *.example.com
Redirect permanent "(?i)https:\/\/\d*[a-z0-9]*.example.com" "https://example.com"
我已经尝试了上面最后一个重定向行的几种变体,正如几个相关问题中所建议的那样。由于我是新来的,所以我现在只能发布两个:
- https://stackoverflow.com/questions/30781718/redirect-http-https-www-to-https-domain-com-using-htaccess
- How to redirect https://www.example.com to https://example.com
我猜这不起作用,因为服务器在处理重定向代码之前返回证书错误。我在上面链接的一个问题暗示了这一点,但它没有被接受为答案,也没有人真正确认或否认它。
我的问题(终于!):
是否可以在没有通配符证书的情况下执行此操作?如果是这样,我上面的重定向代码有什么问题?据我所知,正则表达式适用于从https://*.example.com 到https://example.com 的不区分大小写的重定向。
【问题讨论】:
标签: regex apache .htaccess redirect ssl