【问题标题】:Apache redirect https non-www to https www (Ubuntu)Apache 将 https 非 www 重定向到 https www (Ubuntu)
【发布时间】:2018-05-19 22:12:12
【问题描述】:

我知道这样的问题已经发布了好几次了。但我面临一个独特的问题并寻求帮助。 我想将所有内容重定向到https://www.example.com

我在 Ubuntu 16 上配置了 LAMP 并安装了 Lets Encrypt SSL。我还配置了重定向,状态如下:

  1. http 非 www 和 http www 被正确重定向到 https www

  2. https 非 www 和 https www 都被反向重定向到 https 非 www(而不是预期的 https www)

以下是我的 apache 配置:

1. 000-default-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName www.example.com
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias example.com
SSLCertificateFile /etc/letsencrypt/live/getcreed.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/getcreed.com/privkey.pem

</VirtualHost>
</IfModule>

2。 000-default.conf

    <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html


    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]


    </VirtualHost>

请让我知道我做错了什么。任何帮助都会非常有帮助。

【问题讨论】:

    标签: apache


    【解决方案1】:

    这会使所有重定向到https://www。例如,我正在使用我的网站。

    RewriteCond %{SERVER_PORT} 80
    RewriteCond %{HTTP_HOST} ^(www\.)?itechplanetpc\.com
    RewriteRule ^(.*)$ https://www.itechplanetpc.com/$1 [R=301,L]
    

    【讨论】:

    • 谢谢伊凯莉·西里尔。我应该在哪里添加这个?将此添加到 .htaccess 或 000-default-le-ssl.conf 没有帮助。 000-default.conf 已经有一个重定向规则。随着 http 被正确重定向,我相信端口 80 正在按预期工作。但是 https 版本被重定向到非 www 所以可能与端口 443 有关?
    • 添加到项目根目录下的.htaccess
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 2012-04-14
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多