什么';对于此URL模式,正确的nginx重写表达式是什么?
我正在尝试让Nginx重写规则正常工作。重写模式应匹配的URL示例如下:什么';对于此URL模式,正确的nginx重写表达式是什么?,nginx,url-rewriting,Nginx,Url Rewriting,我正在尝试让Nginx重写规则正常工作。重写模式应匹配的URL示例如下: https://test.mydomaind.com/abc.php?id=1 我的重写规则: rewrite ^/abc\.php?id=(.*)$ https://test.mydomain.com/page/$1 permanent; 但这将返回一个404和示例URL 谁能告诉我我做错了什么?当我在条件中省略查询字符串参数时,重写确实起作用,并且用户被重定向301: rewrite ^/abc\.php$ htt
https://test.mydomaind.com/abc.php?id=1
我的重写规则:
rewrite ^/abc\.php?id=(.*)$ https://test.mydomain.com/page/$1 permanent;
但这将返回一个404和示例URL
谁能告诉我我做错了什么?当我在条件中省略查询字符串参数时,重写确实起作用,并且用户被重定向301:
rewrite ^/abc\.php$ https://test.mydomain.com/page permanent; # THIS WORKS
非常感谢您的帮助 从
?
开始的任何内容都是查询字符串,在将URI与位置
或重写
语句匹配时不考虑
查询字符串(或参数)可在$request\u uri
和$query\u string
(又称$args
)变量和前缀为$arg\u
的变量族中访问
您可以通过以下方式实现类似的功能:
location = /abc.php {
return 301 https://test.mydomain.com/page/$arg_id;
}
如果需要测试是否存在
id=
参数,则需要使用map
或If
语句。从?
开始的任何内容都是查询字符串,在将URI与位置
或重写
语句匹配时不考虑
查询字符串(或参数)可在$request\u uri
和$query\u string
(又称$args
)变量和前缀为$arg\u
的变量族中访问
您可以通过以下方式实现类似的功能:
location = /abc.php {
return 301 https://test.mydomain.com/page/$arg_id;
}
如果需要测试是否存在
id=
参数,则需要求助于map
或If
语句。非常感谢!我完全错过了。感觉我离目标又近了一步,但是重定向还没有产生预期的结果。$arg_id变量似乎为空。通过使用多个参数进行测试,我得到一个URL,看起来像test.mydomain.com/page//。有什么建议吗?嗨,理查德,你能看看我的评论吗?非常感谢!我完全错过了。感觉我离目标又近了一步,但是重定向还没有产生预期的结果。$arg_id变量似乎为空。通过使用多个参数进行测试,我得到一个URL,看起来像test.mydomain.com/page//。有什么建议吗?嗨,理查德,你能看看我的评论吗?