如何停止重定向循环? Ubuntu 上的 Apache2
Posted
技术标签:
【中文标题】如何停止重定向循环? Ubuntu 上的 Apache2【英文标题】:How do I stop a Redirect Loop? Apache2 on Ubuntu 【发布时间】:2021-11-27 04:51:02 【问题描述】:我有一个 DigitalOcean Ubuntu 20.04 Droplet。从 Namecheap 连接到域和 SSL 证书。一切正常。我正在尝试添加从http://example.com 到https://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>`
这看起来正确吗?请看一下。并回复。如何停止重定向。环形。谢谢
【问题讨论】:
【参考方案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。随着新条目。请回复。任何人。谢谢以上是关于如何停止重定向循环? Ubuntu 上的 Apache2的主要内容,如果未能解决你的问题,请参考以下文章