【问题标题】:Can't get rid of a persistent Apache2 redirect (even with purge/flush/reinstall)无法摆脱持久的 Apache2 重定向(即使使用清除/刷新/重新安装)
【发布时间】:2015-12-08 12:44:49
【问题描述】:

我在这里完全被难住了。我试图将所有 http 请求转发到 https(所以端口 80 到 443)。我厌倦了一些方法,包括

Redirect / https:/address.com

Redirect permanent / https://address.com

RedirectRewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

在我尝试永久重定向后终于花了,但转发只有一半有效(会重定向到正确的主机但不会提供页面),但是当我尝试撤消重定向时,它仍然存在(所以仍然导致地址损坏)。

我尝试覆盖它,尝试刷新 DNS,完全清除 apache2 并重新安装,但此重定向仍然存在。我已经没有想法了。这不仅仅是我的浏览器缓存。我已经在多个外部 IP 上进行了测试,结果相同。

重定向中断的.conf如下(注意当前没有重定向是活动的),这个conf也不再活动了。

<VirtualHost *:80>
    ServerName www.example.com

    ServerAdmin webmaster@localhost
    #DocumentRoot /var/www/html

    #LogLevel info ssl:warn

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

    #Redirect / https:/address.com

    #Redirect permanent / https://address.com

    #RedirectRewriteEngine On
    #RewriteCond %{HTTPS} !on
    #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

唯一激活的虚拟主机是我真正想要工作的主机,如下:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect / https://example.com/
</VirtualHost>


<VirtualHost *:443>
    ServerName address.com
    ServerAlias www.address.com
    ServerAlias *.address.com

    ServerAdmin webadmin@localhost
    DocumentRoot /disk2/example_site

    #LogLevel info ssl:warn

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


    SSLEngine on
    SSLCertificateFile example.crt
    SSLCertificateKeyFile example.key
    SSLCACertificatePath /example/
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

重定向仍然存在。

【问题讨论】:

  • 您等了多长时间?许多 DNS 更改至少需要一个小时才能完全生效。您可以尝试重新安装整个操作系统。
  • 这个问题出现已经5天了。我真的不想重新安装操作系统,因为其中有相当多的配置。这将是我最后的手段。

标签: apache redirect httpd.conf


【解决方案1】:

切勿使用永久重定向。

正如您所发现的,从您的服务器中删除它并不会删除访问该页面的任何浏览器的重定向。该指令总是被浏览器无限期缓存。

随后的重写规则意味着您将为 http 请求提供 https 响应 - 这显然是不合理的。

将 [L,R] 添加到最后一行(不是 R=301,如堆栈溢出其他地方所建议的那样)。如果您真的要永久彻底地取消非 SSL,请使用 HSTS。

(顺便说一句,修复浏览器需要直接干扰缓存数据库或删除并重新安装)

【讨论】:

  • 当。这就是我没有做足够的阅读所得到的。然而,这些方法中的每一个都是单独尝试的,从不同时永久重定向实际上是我尝试的第一件事,它没有做它应该做的事情,因此其他方法。你能给我一个完整的例子,说明你的修改应该是什么样子吗?另外,必须卸载什么,使用的每个浏览器还是您指的是服务器端?这是另一件事 - 即使更新的配置处于活动状态,新的浏览器仍然会被重定向,这让我感到困惑。
  • 任何看到永久重定向的浏览器都会继续应用永久重定向。
【解决方案2】:

//这应该是注释

这应该对你有帮助。

Redirect permanent / https://www.your_site_name_here.com/

我读到,你试试这个。 你能发布整个 apache 配置吗?

【讨论】:

  • 我在两个相关的 .conf 文件中进行了编辑。第一个是显然持续存在的那个,第二个是应该有效而无效的。
  • 您可以发布这两个文件以查看您的实际配置吗?
  • 当前实际配置只是第二个conf。唯一的变化是 ServerNames 和 Alias,正如我所指出的,对于 *:80 和 *:443 是相同的
【解决方案3】:

在配置或网络应用程序中删除对永久重定向的任何引用,具体取决于您在哪里进行。

然后,整体清除浏览器缓存。如果它不起作用,请清除浏览器数据。

这是客户端的问题,而不是服务器的问题。如果您不确定自己在做什么,切勿使用 301 或 308 重定向,它们将被无限期缓存。

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 2016-03-15
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多