Nginx 404 重写问题

Nginx 404 重写问题

我试图抓取斜杠之间的变量,并使用 Nginx 中的以下重写行将它们传递给我的管理脚本:

rewrite ^/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)$ /index.php?p1=$1&p2=$2&p3=$3&p4=$4&p5=$5&p6=$6;

如果我请求的页面包含少于 6 个变量(例如:/var1/var2/var3/var4/var5/),则会出现 404 错误。

可以使用少于 6 个变量吗?(虽然我需要在 Web 应用程序的不同部分使用全部 6 个变量)

在 OpenVZ 中运行 CentOS 6,使用 Nginx 1.4.1-1.el6 64 位 + PHP-FPM。

提前致谢。

答案1

如果斜线之间没有正好六个项目,则该模式将不匹配,并且会得到 404 错误。

您可以制定五条新的重写规则,分别包含一到五个变量(或者比我更擅长正则表达式的人可能会建议一条规则来涵盖所有六种情况,但这超出了大多数人的理解范围)或者只是在您的应用程序中处理这个问题。

相关内容