相关疑难解决方法(0)

NGINX 在有效的 url 上返回 404 错误

我们有一个运行 PHP-FPM 和 NGINX 的站点。应用程序向站点成员发送邀请,这些邀请以 40 个字符的随机字符串(仅限字母数字——以下示例)为键。今天,我们第一次遇到了这种方法的问题。以下网址:

http://oursite.com/notices/response/approve/1960/OzH0pedV3rJhefFlMezDuoOQSomlUVdhJUliAhjS
Run Code Online (Sandbox Code Playgroud)

正在返回 404 错误。这种 url 格式已经使用了 6 个月没有问题,并且遵循这种确切格式的其他 url 继续正确解析。我们有一个非常基本的配置,带有一个简单的重定向到前端控制器,现在其他一切都运行良好。

另外,如果我们将最后一个字符从“S”更改为小写“s”以外的任何字符,则不会出现 404 错误并且站点会正确处理请求,所以我想知道是否有一些安全模块可能会看到某些内容这个特定的字符串有问题......不确定这是否有意义。

我们不确定在哪里寻找导致问题的具体原因,因此我们将不胜感激。

谢谢!

更新:在 url 的末尾添加一个斜杠允许它被正确处理......虽然仍然想深入了解问题。

已解决:问题是由我的部分配置引起的...意识到我应该发布,但正在出城并且没有机会。

任何以“css”或“js”结尾且不一定以点开头(因此,例如http://site.com/response/somerandomestringcss)的url 都被解释为对文件的请求,并且请求是不通过前端控制器路由。问题是我的正则表达式用于在 jpg、gif、icos 等上禁用日志记录和设置过期标头。

我换了这个:

location ~* ^.+(jpg|jpeg|gif|css|png|js|ico)$ {
Run Code Online (Sandbox Code Playgroud)

有了这个:

location ~*  \.(jpg|jpeg|gif|css|png|js|ico)$ {
Run Code Online (Sandbox Code Playgroud)

现在以 css、js、png 等结尾的 url 可以通过前端控制器正确路由。希望这可以帮助其他人。

nginx php-fpm http-status-code-404

3
推荐指数
1
解决办法
6834
查看次数

标签 统计

http-status-code-404 ×1

nginx ×1

php-fpm ×1