【问题标题】:Apache VirtualHost: strip www. and force httpsApache VirtualHost:剥离 www。并强制 https
【发布时间】:2016-09-03 21:12:28
【问题描述】:

我在一个只拥有monsite.fr 的 SSL 证书的网站上工作。我正在尝试删除 www。并重定向到https://monsite.fr。 如果用户输入www.monsite.fr,重定向不起作用,他不会被重定向到https://monsite.fr,而是重定向到https://www.monsite.fr,并得到认证错误NET::ERR_CERT_COMMON_NAME_INVALID

这是 mysite.conf 文件的内容:

<IfVersion < 2.3 >
  NameVirtualHost *:80
  NameVirtualHost *:443
</IfVersion>

<VirtualHost *:80>
  ServerName monsite.fr
  Redirect / https://monsite.fr/

  #RewriteEngine On
  #RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
  #RewriteRule ^(.*)$ https://%1$1 [R=permanent,L]
</VirtualHost>

<VirtualHost *:80>
  ServerName www.monsite.fr
  Redirect / https://monsite.fr/
</VirtualHost>

<VirtualHost *:443>
  ServerName monsite.fr
  ServerAlias www.monsite.fr

  #RewriteEngine On
  #RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
  #RewriteRule ^(.*)$ https://%1$1 [R=permanent,L]

  RewriteEngine On
  RewriteCond %{HTTPS} =on
  RewriteCond %{HTTP_HOST} ^www\.
  RewriteRule ^(.*)$ https://monsite.fr/$1 [R,QSA,L]

  DocumentRoot "/opt/monsite.fr/htdocs"
</VirtualHost>

有没有将www.monsite.fr 重定向到https://monsite.fr 的解决方案?

【问题讨论】:

    标签: apache mod-rewrite ssl vhosts


    【解决方案1】:

    如下修改你的虚拟主机配置:

      <VirtualHost *:80>
          ServerName www.monsite.fr
          ServerAlias monsite.fr
          RedirectMatch ^/(.*)$ https://monsite.fr/$1
        </VirtualHost>
    
        <VirtualHost *:443>
          ServerName www.monsite.fr
          RedirectMatch ^/(.*)$ https://monsite.fr/$1
        </VirtualHost>
    
        <VirtualHost *:443>
          ServerName monsite.fr
          SSLEngine On
          SSLCertificateFile    /path_to_cert/server.crt
          SSLCertificateKeyFile /path_to_key/server.key
          DocumentRoot "/opt/monsite.fr/htdocs"
        </VirtualHost>
    

    第一个虚拟主机块会将所有请求从http://www.monsite.fr 重定向到https://monsite.fr。它还将所有请求从http://monsite.fr重定向到https://monsite.fr

    第二个虚拟主机块会将所有请求从https://www.monsite.fr 重定向到https://monsite.fr

    第三个虚拟主机块将为https://monsite.fr 提供内容。确保编辑上述配置并为 SSL 证书添加正确的路径 /path_to_cert/server.crt,为私钥添加正确的路径 /path_to_key/server.key

    【讨论】:

      猜你喜欢
      • 2012-08-07
      • 2010-09-10
      • 2016-04-05
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多