【问题标题】:How to fix wrong redirect utl 301 in htaccess?如何修复 htaccess 中错误的重定向 utl 301?
【发布时间】:2017-02-20 16:46:52
【问题描述】:

我使用 htaccess 来限制可以连接到管理员和用户登录页面的 ip。

RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteRule (admin|user)$ http://redirect_example.com [R=301,L]

但这里的问题是我使用了 301 重定向,这意味着当我无法将 url http://redirect_example.com 更改为另一个 url 时。它已经被缓存了。我的 curl -I http://example.com/user 结果:

HTTP/1.1 301 Moved Permanently
Date: Fri, 17 Feb 2017 03:46:19 GMT
X-Content-Type-Options: nosniff
Cache-Control: max-age=1209600
Expires: Fri, 03 Mar 2017 03:46:19 GMT
Content-Length: 313
Content-Type: text/html; charset=iso-8859-1
Location: http://redirect_example.com
Age: 251965
X-Cache: HIT
X-Cache-Hits: 56
Connection: keep-alive

如何将http://redirect_example.com 更改为另一个网址?

【问题讨论】:

    标签: apache .htaccess varnish


    【解决方案1】:

    由清漆引起。您应该通过运行以下命令来禁止缓存:

    varnishadm 
    

    然后按域禁止缓存:

    ban req.http.host ~ "redirect_example.com" 
    

    【讨论】:

      【解决方案2】:

      它只是缓存在您的浏览器中。清除浏览器缓存。您可以在测试时使用 302 重定向来帮助解决此问题。

      【讨论】:

      • 我认为它没有缓存在浏览器中。在 htaccess 中删除 301 重定向后的原因。我在私人浏览器,另一台计算机的浏览器中尝试过,但它仍然重定向到redirect_example.com
      • 好吧,它不会被缓存在服务器上,除非你有可以做到这一点的东西。尝试重新启动 Apache 以防万一。否则它可能会被代理缓存。
      • 你介意给我举个“某事”的例子吗?如何检查它是否缓存在服务器上?非常感谢!
      • 服务器上的某种缓存,或者您在缓存之间使用的某种代理。如果你有它,你就会知道它。这不太可能。仔细检查您的设置,您可能错过了一些简单的设置。
      • memcached 或 varnish 是否存储这种缓存?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多