vps交流

[疑问] nginx反向代理下能使用伪静态重写url吗?


nginx反向代理下能使用伪静态重写url吗?
试下了伪静态规则是无效的,求教下要怎么用规则呢?规则如下
location ~ ^/mulu1/mulu2/(.*)  {
return 301 https://www.aaa.com$request_uri;
}
帮顶                        
要把反代那几行配置写进去

hjvn2211445 发表于 2021-11-20 14:46
要把反代那几行配置写进去

是把这个规则
location ~ ^/mulu1/mulu2/(.*)  {
return 301 https://www.aaa.com$request_uri;
}
加到反向代理的配置里面吗?

你这个不是301重定向么,和重写url有任何关系?

hanada 发表于 2021-11-20 14:49
你这个不是301重定向么,和重写url有任何关系?

就是想把
location ~ ^/mulu1/mulu2/(.*)  {
return 301 https://www.aaa.com$request_uri;
}
这个规则加到反向代理的配置里面,不知道怎么搞了。

本帖最后由 hjvn2211445 于 2021-11-20 15:04 编辑

location ~ ^/mulu1/mulu2/(.*)  {
    proxy_pass http://1x.xx.xx.3;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    return 301 https://www.aaa.com$request_uri;
}

大概这样看看行不行,如果不是这个原因,可能是通配优先级问题

本帖最后由 hanada 于 2021-11-20 15:09 编辑

Sails 发表于 2021-11-20 14:54
就是想把
location ~ ^/mulu1/mulu2/(.*)  {
return 301 https://www.aaa.com$request_uri;

你这里都301重定向了,nginx会直接响应301状态码,反向代理都无效了,你这里301是要跳到另外一个域名么

hjvn2211445 发表于 2021-11-20 15:02
location ~ ^/mulu1/mulu2/(.*)  {
    proxy_pass http://1x.xx.xx.3;
    proxy_set_header Host $host;

谢谢大佬,我去试下。

hanada 发表于 2021-11-20 15:07
你这里都301重定向了,nginx会直接响应301状态码,反向代理都无效了,你这里301是要跳到另外一个域名么 …

就是在反向代理里面,实现个别目录的301跳转
location ~ ^/mulu1/mulu2/(.*)  {
return 301 https://www.aaa.com$request_uri;
}
如果匹配到目录了,就301,否者就正常反代,但我这个规则是伪静态的301规则, 不知道这个规则怎么写到反向代理规则里面,我去试试7楼大佬给的规则。