正确的 Nginx 正则表达式,用于使用双连字符重定向 URL
Proper Nginx regex for redirection of URLs with double hyphen
这是我第一次 post。希望我能够彻底解释我的问题。
我有一个 Nginx 配置,可以将 my.domain.com/avocado 重定向到 my.domain.com/avocado/(最后有一个斜线)。这也会在 /avocado 路径之后重定向子路径(以斜杠结尾),例如:
my.domain.com/avocado/香蕉 --> my.domain.com/avocado/香蕉/
my.domain.com/avocado/香蕉/苹果 --> my.domain.com/avocado/香蕉/苹果/
现在,我们注意到以“/--”作为最后一个子路径的 URL(例如:my.domain.com/avocado/banana/apple/--)没有正确重定向。它应该重定向到 my.domain.com/avocado/banana/apple/(在最后一个子路径后附加一个斜线)
我认为这也是正则表达式的东西,但我不知道如何正确地做到这一点。你们会建议任何正则表达式吗?谢谢!
server {
server_name my.domain.com;
location /avocado {
resolver 10.1.0.2 valid=60s;
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name permanent;
}
rewrite ^([^.]*[^/])$ https://$server_name/ permanent;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://$upstreamserver$request_uri;
}
}
这是你的第一个问题,也是我的第一个答案。
我看到有两种方法可以做到这一点。
这是我第一次 post。希望我能够彻底解释我的问题。
我有一个 Nginx 配置,可以将 my.domain.com/avocado 重定向到 my.domain.com/avocado/(最后有一个斜线)。这也会在 /avocado 路径之后重定向子路径(以斜杠结尾),例如:
my.domain.com/avocado/香蕉 --> my.domain.com/avocado/香蕉/ my.domain.com/avocado/香蕉/苹果 --> my.domain.com/avocado/香蕉/苹果/
现在,我们注意到以“/--”作为最后一个子路径的 URL(例如:my.domain.com/avocado/banana/apple/--)没有正确重定向。它应该重定向到 my.domain.com/avocado/banana/apple/(在最后一个子路径后附加一个斜线)
我认为这也是正则表达式的东西,但我不知道如何正确地做到这一点。你们会建议任何正则表达式吗?谢谢!
server {
server_name my.domain.com;
location /avocado {
resolver 10.1.0.2 valid=60s;
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name permanent;
}
rewrite ^([^.]*[^/])$ https://$server_name/ permanent;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://$upstreamserver$request_uri;
}
}
这是你的第一个问题,也是我的第一个答案。
我看到有两种方法可以做到这一点。