问题标签 [nginx-location]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
364 浏览

nginx - 如何使用 nginx 重写 URL 以匹配服务器?

我是 nginx 的新手。我有两个项目,一个是运行localhost 8000的 django web app ,另一个是用于提供 api 服务并运行localhost 8888的 tornado 。

如何配置将所有 url 请求(从 80 端口)重定向到localhost:8000/api请求重定向到localhost:8888(tornado 应用程序)的 nginx?

0 投票
1 回答
3708 浏览

regex - 在 Nginx 中,如何匹配整个 URL 和查询字符串并重定向到 URL 和查询字符串

我一直在寻找一段时间,尝试解决方法并没有想出任何有用的东西。

我有一个(大)来自站点迁移的 URL 列表,需要匹配整个 URL + 查询字符串并重定向到另一个 URL。

据我所知,以下仅匹配/mens,而不是查询字符串的其余部分。

这很重要的原因是我有一堆相似的 URL,它们的查询字符串略有不同,需要重定向,类似于下面,但实际上可以工作.... :-/

在此先感谢,保罗。

0 投票
1 回答
27 浏览

mod-rewrite - nginx重写规则没有结果

我尝试使用 nginx 的重写来更改网址,例如

但我的尝试没有结果。

它出什么问题了?

0 投票
1 回答
98 浏览

nginx - 根据位置不同的url重写

我真的没有找到任何关于 URL 重写的文档(我无法理解,因为我意外地发现文档对于非本地人来说真的很难阅读)。

我正在寻找一种方法来重写所有匹配的路由/*\.(js|png|jpg|css|ttf|xml)$/path/media/尝试文件的存在,如果存在则返回它,否则404 not found

然后如果它以/ajax/将所有内容重定向到path/ajax/index.php else 开始,则将所有内容重定向到path/www/index.php

我不太明白我应该怎么做,现在我创建了 3 个位置 /media/、/ajax/ 和 /www/,但我不知道这是否是使用重写而不返回的正确方法,或者是这些位置是正确的方法。

我真的不明白我在sites-enabled/file关于 fastcgi 的文章中写了什么。这是解释器路径吗?

如果我理解正确,则表示“如果它以 .php 结尾,并且它存在于层次结构中,则执行它”。

而且我不知道我是否应该为每个必须处理 php(/www/ 和 /ajax/)的位置放置这种东西,特别是因为我要为这两个位置做一些路由。此外,我不知道是否应该这样做。

0 投票
1 回答
453 浏览

php - 无法阻止对 Nginx 上 wp-login.php 的 IP 访问

我正在经历对 wp-login.php 的攻击,所以我决定保护它。这是代码:

它可以保护 wp-admin 目录,但保护 wp-login.php 不起作用。它允许我访问 wp-login.php 我使用的任何 IP。任何想法 ?

0 投票
1 回答
938 浏览

php - Nginx位置匹配中带括号的变量捕获

我有这个位置规则:

它非常适合以下网址:

但是现在我需要修改我的位置以匹配带有括号的网址。我使用这个版本:

但是 url 没有发生重写/banks/Respublika_Saha_(Yakutiya)/Neryungri/responses/

我用 php preg_match函数检查这个模式:

它返回1,所以这个模式匹配 url()

此外,我用 python re.search 检查了这个字符串:

它返回0,所以这个模式从一开始就匹配这个字符串。

但是nginx不这么认为。

我应该如何修改 nginx 位置规则以匹配这个 url /banks/Respublika_Saha_(Yakutiya)/Neryungri/responses/

PS我的nginx版本是nginx/1.9.10

0 投票
1 回答
1723 浏览

nginx - 允许索引文件夹,但不提供文件

我想允许 Nginx 自动索引文件夹,但不提供文件。在我的应用程序中,文件存储在受保护的文件文件夹中,用户无法访问该文件夹。当用户调用一个文件(例如:my-website.com/files/my-great-files.pdf)时,实际上,他被重定向到一个 PHP 脚本,该脚本验证用户是否有权调用该文件。我知道该怎么做,没关系。

但实际上,我想使用一个名为 jBrowse 的 JS 插件,这个程序需要访问很多文件,并且需要访问文件夹的索引才能在其中包含文件列表。

而且我不知道该怎么做...我们可以在 PHP 中返回文件索引吗?

或者其他想法,允许 Nginx 返回包含空文件的文件夹的索引。当用户或插件想要访问文件时,他会重定向到控制权限的 PHP 脚本。

我介意这个:

没关系,用户可以在文件夹中导航,查看文件,但是如果他点击,就会出现 403 错误。但是我不能通过重定向到 php 来替换全部拒绝...

这是我的 default.conf 文件:

0 投票
1 回答
899 浏览

regex - 重写所有对 index.php 的请求,除了 /static/ 目录

这是我的 nginx.conf:

如何让 nginx 在不重写 url 的情况下在 /static/ 目录中提供文件?

0 投票
3 回答
4365 浏览

php - 对 css、js 和静态文件的更改未反映在 nginx docker 容器上

我创建了一个关于 php 的多容器应用程序。当我修改 php 文件时,我可以在浏览器中看到更改。但是,当我修改css和js等静态文件时,浏览器没有任何变化。以下是我的 Dockerfile 代码:

Dockerfile

默认.conf

nginx.conf

码头工人-compose.yml

0 投票
2 回答
751 浏览

php - Nginx 中的 Apache RewriteCond 等价物

我是 Nginx 的新手,并试图将我对 WordPress 网站的以下规则从 Apache 转换为 Nginx。我从运行 Nginx 1.4.6 的 Ubuntu 机器上的默认 Nginx 配置开始。

上面的规则将所有请求重写为wp-content/themes/*.phpto security-log.php,但规则中定义的文件除外RewriteCond

据我所知,在 Nginx 中执行此操作的方法是使用该location块。我尝试了以下方法(我仍然不确定如何排除特定文件/文件夹)。

上面的规则似乎被完全忽略了(也许我的正则表达式有问题?)。

如果我提供如下固定路径,则会调用该规则,但 Nginx 将提供 PHP 文件(浏览器将下载该文件)而不是使用 PHP 解释器执行它(这很可能是因为fast-cgi没有被调用)。

实现这一目标的最佳方法是什么?