如何在 Nginx 位置使用正则表达式 /page/.*/page/
How to use regex like /page/.*/page/ in 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来禁止它。
但是我失败了,我在 http://nginx.viraptor.info/
中尝试了不同的规则
location ~ /page/.*/page/ {
return 403;
}
location ~* \/page/.*/page/ {
location ~* /page/\.*/page/ {
None 他们中的...
我发现只有使用 /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 中执行此操作,那将是一个麻烦,您应该像您所说的那样在您的脚本中执行此级别的检查。
参见:https://serverfault.com/questions/811912/can-nginx-location-blocks-match-a-url-query-string
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来禁止它。 但是我失败了,我在 http://nginx.viraptor.info/
中尝试了不同的规则location ~ /page/.*/page/ {
return 403;
}
location ~* \/page/.*/page/ {
location ~* /page/\.*/page/ {
None 他们中的...
我发现只有使用 /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 中执行此操作,那将是一个麻烦,您应该像您所说的那样在您的脚本中执行此级别的检查。
参见:https://serverfault.com/questions/811912/can-nginx-location-blocks-match-a-url-query-string