【问题标题】:http to https redirect not working (Letsencrypt)http 到 https 重定向不起作用(Letsencrypt)
【发布时间】:2019-02-11 15:43:12
【问题描述】:

我浏览了网络上所有类似的主题,但似乎找不到解决方案。

我已成功安装 Let's Encrypt 证书,但无法从 http 自动重定向到工作。重定向由 certbot(Letsencrypt 安装脚本)通过 /etc/apache2/sites-available/domain.com.conf 文件设置。这是文件的内容:

<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin webmaster@localhost
DocumentRoot /home/username/public_html/domain.com/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.domain.com [OR]
RewriteCond %{SERVER_NAME} =domain.com
RewriteCond %{THE_REQUEST} !/(robots.txt|sitemap.xml)\s [NC]
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

该文件已正确链接到其启用站点的符号链接。我尝试重新加载/重新启动 apache2 服务,尝试禁用该网站的本地 .htaccess 文件,但都无济于事。我扫描了所有的 .conf 文件,并确保在任何其他 .conf 文件中都没有提到这个域。奇怪的是,重定向确实适用于我位于同一服务器上的一些网站,但对于某些网站则不起作用。

我尝试过查看日志文件,但没有找到任何具体内容。

请帮忙!

【问题讨论】:

  • 443 端口服务器的配置是什么样的?

标签: apache redirect https


【解决方案1】:

找到了。

原因是我从另一台服务器上移动了一些域,所以我从那里复制了所有 .conf 文件。因为IP不同,我不得不重新颁发并重新安装证书。出于某种奇怪的原因,Certbot 在每个 *-le-ssl.conf 中创建了一个 &lt;VirtualHost *:80&gt; 部分,但注释掉了重定向部分。因此,实际上使用 domain.com-le-ssl.conf 文件而不是 domain.com.conf 文件用于端口 80 连接。

解决方案是取消注释 *-le-ssl.conf 文件的重定向部分,或者从其中完全删除 &lt;VirtualHost *:80&gt; 部分,以允许 *.conf 文件接管。

【讨论】:

  • 谢谢!尽管我从未移动服务器甚至清理了整个-le-ssl 文件,但它只为一个域生成了HTTP 虚拟主机,但其他所有域都正确。最后,我在/etc/apache2/sites-enabled 中使用ls | grep le-ssl | xargs grep *:80 验证了所有内容
猜你喜欢
  • 2014-03-10
  • 2018-06-11
  • 2015-07-28
  • 2022-01-14
  • 2021-04-15
  • 2018-01-31
  • 1970-01-01
  • 2014-08-14
  • 2018-05-02
相关资源
最近更新 更多