【问题标题】:How do I stop a Redirect Loop? Apache2 on Ubuntu如何停止重定向循环? Ubuntu 上的 Apache2
【发布时间】:2021-11-27 04:51:02
【问题描述】:

我有一个 DigitalOcean Ubuntu 20.04 Droplet。从 Namecheap 连接到域和 SSL 证书。一切正常。我正在尝试添加从http://example.comhttps://www.example.com 的重定向。 HTTPS 和万维网。当我尝试我的域时。我收到一条错误消息,提示“重定向过多”。我无法访问该页面。没有阿帕奇。所以我处于重定向循环中。在 www 和非 www 之间。我的 /etc/apache2/sites-enabled/000-default.conf 是:

`<VirtualHost *:80>
      ServerName example.com
      Redirect permanent / https://www.example.com/
 </VirtualHost>
 <VirtualHost *:443>
      ServerName example.com
      Redirect permanent / https://www.example.com/
      DocumentRoot /var/www/html
      SSLEngine on
      SSLCertificateFile /etc/ssl/example_com.crt
      SSLCertificateKeyFile /etc/ssl/example_com.key
      SSLCertificateChainFile /etc/ssl/example_com.ca-bundle
 </VirtualHost>`

那么,如何停止重定向循环?我也有 /etc/apache2/sites-enabled/000-default.conf:30

 `<VirtualHost *:443>
       ServerName example.com
       DocumentRoot /var/www/html
       SSLEngine on
       SSLCertificateFile /etc/ssl/example_com.crt
       SSLCertificateKeyFile /etc/ssl/example_com.key
       SSLCertificateChainFile /etc/ssl/example_com.ca-bundle
  </VirtualHost>`

这看起来正确吗?请看一下。并回复。如何停止重定向。环形。谢谢

【问题讨论】:

    标签: apache ssl https ubuntu-20.04


    【解决方案1】:

    调整您的 Vhost 配置:

    <VirtualHost *:80>
      ServerName example.com
      ServerAlias www.example.com
      Redirect permanent / https://www.example.com/
    </VirtualHost>
    
    <VirtualHost *:443>
      ServerName example.com
      ServerAlias www.example.com
      DocumentRoot /var/www/html
      SSLEngine on
      SSLCertificateFile /etc/pki/tls/certs/example_com.crt
      SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
      RewriteEngine On
      RewriteCond %{HTTP_HOST} !^www\. [NC]
      RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </VirtualHost>
    

    得到以下结果:

    http://example.com -> https://www.example.com
    http://www.example.com -> https://www.example.com
    https://example.com -> https://www.example.com
    https://www.example.com -> Stays the same
    

    【讨论】:

    • 感谢您的快速回复。我可以将“https://example.com”添加到“https://www.example.com”吗? (不保持不变?)
    • 我尝试了 443 上的评论,它有效。重启阿帕奇。重定向很好。但是我可以将 www 添加到 https 吗?喜欢上面的评论吗?再次感谢
    • 我已经更新了我的答案,不使用 HTTPS Vhost 443 的 www 重定向。
    • 我回来了。我将尝试重写规则和条件。并回来报告。再次感谢
    • 我回来了...对不起,我很忙。我试过你的第二个回复,它不会连接。没有阿帕奇屏幕。在网上。对于我的域。我应该完全输入您发布的内容吗?我应该用“example.com”替换“%{HTTP_HOST}”之类的东西吗?应该评论 443 的链接吗?重定向443?像以前一样。而且我无法重新启动/启动 Apache。随着新条目。请回复。任何人。谢谢
    猜你喜欢
    • 2015-12-20
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 2014-03-31
    • 2018-05-13
    • 1970-01-01
    相关资源
    最近更新 更多