rewrite ^/index\.asp /index.php last;
rewrite ^/index\.asp\?boardid=([0-9]+)$/forum-$1-1.html last;
rewrite ^/index\.asp\?boardid=([0-9]+)(.*)$/forum-$1-1.html last;
rewrite ^/index_([0-9]+)(.*)$/forum-$1-1.html last;
rewrite ^/dispbbs\.asp\?boardID=([0-9]+)&ID=([0-9]+)$/thread-$2-1-1.html last;
我已经尝试了上面的重写规则,并得到一个死的结果,没有工作.
我参考了很多帖子和文章,没有帮助.
有什么错误吗?
V / R,
加文
感谢您的回复. 🙂
我已将我的nginx配置更改为,
rewrite ^/index\.asp$/index.php last;
rewrite ^/index\.asp\?boardid=([0-9]+)(.*)$/forum-$1-1.html last;
rewrite ^/index\.asp\?boardid=([0-9]+)$/forum-$1-1.html last;
rewrite ^/dispbbs\.asp\?boardID=([0-9]+)&ID=([0-9]+)$/thread-$2-1-1.html last;
还是行不通.但我发现规则中没有错误.
最佳答案 您无法在重写规则中匹配参数,它们可能只包含路径.原因很简单:假设参数可能有另一个顺序;假设您没有考虑其他参数(例如来自Google的关键字).
所以你的规则应该以一种匹配路径的方式重写,然后检查参数.像这样:
rewrite ^/index_([0-9]+)(.*)$/forum-$1-1.html last;
location /index.asp {
if ($arg_boardid ~ "^([0-9]+)") {
rewrite ^ /forum-$1-1.html break;
}
rewrite ^ /index.php break;
}
location /dispbbs.asp {
rewrite ^ /thread-$arg_ID-1-1.html break;
}