【问题标题】:undo permanent rewrite rule Nginx撤消永久重写规则 Nginx
【发布时间】:2015-04-16 08:32:36
【问题描述】:

好吧,我对 nginx 非常陌生,做了一些非常愚蠢的事情。我在我的站点可用文件中编写了以下代码。删除它似乎不会撤消它。

location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {  
    rewrite ^/(.*)/$ /?page=$1 last;  
    rewrite ^(.*[^/])$ $1/ permanent;  
}

我在完全理解它的含义之前写了这个,并且已经从我的配置文件中删除了它。尽管删除了它,但它似乎仍在影响我网站的一页。我尝试了不同的浏览器,而不是在应用规则时加载此页面的浏览器,但它仍然无法正确提供图像。

如何撤消此操作?

该站点尚未公开,因此我不担心其他人的浏览器捕获在此问题解决后仍会重定向。

尽管我的站点可用和站点启用文件夹中不再有规则,但我的服务器中是否存在继续重定向的位置?它是一个 linux/ubuntu 服务器,到目前为止,这是该服务器运行的第一个站点。

感谢您提供有关如何解决此问题的任何帮助或想法!

【问题讨论】:

    标签: linux nginx rewrite


    【解决方案1】:

    根据rfc2616 section 10.3.2关于http状态301

    已为请求的资源分配了一个新的永久 URI 和任何 将来对该资源的引用应该使用返回的一个 URI。具有链接编辑功能的客户端应该自动 将对 Request-URI 的引用重新链接到一个或多个新的 尽可能由服务器返回的引用。这个回应是 除非另有说明,否则可缓存。

    很多浏览器都使用它在本地缓存响应,这样在调用同一个 URL 时就不会浪费另一个请求,这与 302 不同,它重定向但不缓存。
    要解决这个问题,您只需要清除本地缓存,甚至不需要清除整个缓存,如果您今天这样做,您可以清除今天的缓存,一切都会恢复正常。

    【讨论】:

    • 我在浏览器中以隐身模式打开了网址,并得到了我所期望的一切。正如@Mohammad AbuShady 所说
    【解决方案2】:

    如果您在 nginx/sites-available 中将此位置块添加到您的/您的一个站点 conf,然后将该文件符号链接到 nginx/sites-enabled,则它只能位于 nginx/sites-available/site 中。

    但是,如果您将 /nginx/sites-available/site 复制到 nginx/sites-enabled/site 您还必须删除 sites-enabled...中的文件...

    可以肯定的是,你删除配置后是否重新加载了nginx?

    【讨论】:

    • 感谢您的回答。令人困惑的部分是我确实检查了启用的站点,但它不存在。可用和启用的站点是符号链接的。我已经重新加载了nginx。更令人困惑的是,当我有重写规则时,它似乎只会影响我在浏览器中运行的页面。它正在添加 / 并破坏所有 png 和 js 文件。该网站上的所有其他页面都运行良好。重写规则可以缓存在我服务器的其他地方吗?再次感谢!
    • 你能提供你的站点 nginx 配置文件吗?
    • 我看不到重写规则如何被缓存在某个地方,除非你把它放在 nginx/nginx.conf 中。您可以尝试清除浏览器缓存。
    • server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name mywebsite.com; root /usr/share/nginx/html; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_redirect off; }
    • 以上是我的站点可用文件夹中的配置文件。目前它是我唯一的配置文件。尽管删除了错误代码,重新启动 nginx,并在其他计算机上使用新浏览器尝试该站点,但该页面仍在更改路径。最坏的情况是。我可以重命名页面。不知道为什么它仍然导致这些问题更令人沮丧。感谢您对此的看法。
    猜你喜欢
    • 1970-01-01
    • 2011-07-30
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    相关资源
    最近更新 更多