【发布时间】: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;
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;
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;
编辑:我发现,只要我从重写规则中删除 % 符号,该规则就会起作用。 (但显然是错误的 URL。)
已解决:我运行了搜索替换查询,用(.*) 替换所有位为%(例如%2C 和%26)。然后我确保永远不会有(.*)(.*)。现在我正在使用批量重定向检查器 (example) 测试每个重定向。
【问题讨论】:
标签: redirect nginx url-rewriting