Apache:使用通配符永久重定向到HTTPS

时间:2017-08-23 05:15:00

标签: apache redirect wildcard virtualhost

我正在尝试将HTTP流量重定向到我服务器上的HTTPS。

我拥有this.example.netthat.example.netetc.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>

但这不起作用。

我知道我可以通过这种方式设置单个子域名,但是可以使用通配符吗?

1 个答案:

答案 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配置。