Nginx:一些重写规则正在运行,有些则不是

时间:2018-03-20 11:03:07

标签: redirect nginx url-rewriting

我有一个nginx conf文件,包含2060个重写规则,适用于一个非常大的网站。

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

这两条规则实际上是返回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

编辑:我发现,只要我从重写规则中删除%-signs规则就可以了。 (但显然错误的URL。)

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

1 个答案:

答案 0 :(得分:0)

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