Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Nginx位置中使用类似regex的/page/*/page/_Nginx_Nginx Location - Fatal编程技术网

如何在Nginx位置中使用类似regex的/page/*/page/

如何在Nginx位置中使用类似regex的/page/*/page/,nginx,nginx-location,Nginx,Nginx Location,Url示例: http://test.com/test/page/4?-test?o?o_html/page/100/page/2/page/3/page/4/page/4/page/2/page/106/page/107/page/2/page/3/page/4/page/108/page/3/page/2/page/3/page/4&-test 我想用nginx定位来禁止它。 但我失败了,我试过不同的规则 location~/page/*/page/{ 返回403; } 他们都不工

Url示例:

http://test.com/test/page/4?-test?o?o_html/page/100/page/2/page/3/page/4/page/4/page/2/page/106/page/107/page/2/page/3/page/4/page/108/page/3/page/2/page/3/page/4&-test
我想用nginx定位来禁止它。 但我失败了,我试过不同的规则

location~/page/*/page/{
返回403;
}

他们都不工作

我发现只有use/page/有效

location ~* /page/ {
但当我添加。*/page/like时:

location ~* /page/.*/page/ {
它不起作用

现在我使用php来判断url,如下所示:

if (preg_match ("/\/page\/.*\/page\//i", $_SERVER["REQUEST_URI"]))

请告诉我如何在nginx conf位置使用regex.*。我想使用nginx。

第一个
之后的所有内容都是URI参数,它们不是URI的一部分,因为这样的位置匹配永远不会起作用。如果有一个解决方案允许您在Nginx中执行此操作,那么这将是一个难题,您应该像您所说的那样在脚本中执行此级别的检查


请参阅:

您正在尝试将参数与页面url进行匹配,并且通过这种方式在url上完成匹配。这是
/test/page/4
在这种情况下哦,天哪。我是多么的粗心,我实际上忽略了它实际上是一个参数。感谢您的回复~I使用
if($query_string~“/page/*/page/”{return 404;}
解决此问题。
if (preg_match ("/\/page\/.*\/page\//i", $_SERVER["REQUEST_URI"]))