我正在尝试将HTTP流量重定向到我服务器上的HTTPS。
我拥有this.example.net
,that.example.net
和etc.example.net
的证书,我的DNS接受通配符。我想使用通配符将HTTP永久重定向到HTTPS。
我试过了:
<VirtualHost *:80>
ServerName example.net:80
ServerAlias *.example.net
ServerAdmin mark@example.net
RedirectMatch 301 (.*) https://$1.example.net
</VirtualHost>
但这不起作用。
我知道我可以通过这种方式设置单个子域名,但是可以使用通配符吗?
答案 0 :(得分:0)
如Apache 2.4 httpd的RedirectMatch Directive所述:
语法:RedirectMatch [状态]正则表达式网址
此伪指令等效于Redirect,但使用正则表达式而不是简单的前缀匹配。
示例:
RedirectMatch "(.*)\.gif$" "http://other.example.com$1.jpg"
Apache使用PCRE兼容的正则表达式。
但是通常使用它应该足够了:
Redirect permanent / https://www.example.com/
最后但并非最不重要的部分:Redirect
仅匹配 URL路径,而不匹配完整的URL!
因此,最好为正在使用的每个子域添加一个VirtualHost
配置。