网址示例:
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位置来禁止它。 但是我发誓,我在http://nginx.viraptor.info/
中尝试了不同的规则 location ~ /page/.*/page/ {
return 403;
}
location ~* \/page/.*/page/ {
location ~* /page/\.*/page/ {
他们都没有工作......
我发现只使用/ page /工作了。
location ~* /page/ {
但是当我添加。* / page / like:
location ~* /page/.*/page/ {
没有用......
现在我使用php来判断url:
if (preg_match ("/\/page\/.*\/page\//i", $_SERVER["REQUEST_URI"]))
请告诉我如何在nginx conf位置使用正则表达式。*我想使用nginx。
答案 0 :(得分:1)
第一个?
之后的所有内容都是URI参数,它们不是URI的一部分,因为这样的位置匹配永远不会起作用。如果有一个允许你在Nginx中执行此操作的解决方案,它将是一个kludge,你应该像你所说的那样在你的脚本中执行这种级别的检查。
请参阅:https://serverfault.com/questions/811912/can-nginx-location-blocks-match-a-url-query-string