【问题标题】:Nginx: some rewrite rules are working and some aren'tNginx:一些重写规则有效,有些则无效
【发布时间】:2018-08-29 04:01:30
【问题描述】:

我有一个 nginx 配置文件,其中包含 2060 条重写规则,适用于一个相当大的网站。

奇怪的是:只有大约一半的重写规则实际上是重定向的。另一半只是将您带到显示 404 的 php 应用程序,因为该页面不存在。

这 2 条规则实际上是返回 301 代码并正确重定向访问者:

rewrite ^/rechtsgebied/consumentenrecht/columns/169/boek-over-loverboy-verzonnen_-consument-kan-geld-terugeisen.htm/?$ https://www.example.com/rechtsgebied/consumentenrecht/columns/boek-over-loverboy-verzonnen-consument-kan-geld-terugeisen/ permanent;

301,重定向后:https://www.example.com/rechtsgebied/consumentenrecht/columns/169/boek-over-loverboy-verzonnen_-consument-kan-geld-terugeisen.htm

rewrite ^/rechtsgebied/bouwen%2C_wonen_%26_huren/huren-van-woonruimte/tipsentrucs/?$ https://www.example.com/rechtsgebied/bouwen-wonen-huren/huren-van-woonruimte/tips-and-tricks/ permanent;

301,重定向后:https://www.example.com/rechtsgebied/bouwen%2C_wonen_%26_huren/huren-van-woonruimte/tipsentrucs

但是这两条规则并没有做任何事情。这些 URL 没有被重定向并返回 404:

rewrite ^/rechtsgebied/consumentenrecht/kopen-aan-de-deur/artikelen/980/wat-zijn-mijn-rechten-als-consument-bij-koop-aan-huis-%28colportage%29_-.htm/?$ https://www.example.com/rechtsgebied/consumentenrecht/kopen-aan-de-deur/artikelen/wat-zijn-mijn-rechten-als-consument-bij-koop-aan-huis-colportage/ permanent;

404,无重定向:https://www.example.com/rechtsgebied/consumentenrecht/kopen-aan-de-deur/artikelen/980/wat-zijn-mijn-rechten-als-consument-bij-koop-aan-huis-%28colportage%29_-.htm

rewrite ^/rechtsgebied/bouwen%2C_wonen_%26_huren/zelf-een-huis-laten-bouwen/artikelen/406/de-aannemingsovereenkomst-in-het-kort.htm/?$ https://www.example.com/rechtsgebied/bouwen-wonen-huren/zelf-een-huis-laten-bouwen/artikelen/de-aannemingsovereenkomst-in-het-kort/ permanent;

404,无重定向https://www.example.com/rechtsgebied/bouwen%2C_wonen_%26_huren/zelf-een-huis-laten-bouwen/artikelen/406/de-aannemingsovereenkomst-in-het-kort.htm

编辑:我发现,只要我从重写规则中删除 % 符号,该规则就会起作用。 (但显然是错误的 URL。)

已解决:我运行了搜索替换查询,用(.*) 替换所有位为%(例如%2C 和%26)。然后我确保永远不会有(.*)(.*)。现在我正在使用批量重定向检查器 (example) 测试每个重定向。

【问题讨论】:

    标签: redirect nginx url-rewriting


    【解决方案1】:

    已解决:我运行搜索替换查询以将所有位替换为%(例如%2C 和%26)与(.*)。然后我确保永远不会有(.*)(.*)。现在我正在使用批量重定向检查器 (example) 测试每个重定向。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      相关资源
      最近更新 更多