我有像这样的nginx配置
example.com配置
location /sample.php {
#return 505;
proxy_pass http://sub1.example.com
}
location / {
return 404;
}
sub1.example.com配置
location / {
try_uri $uri @missing
}
location ~ \.php {
...
}
location @missing {
rewrite ^ http://sub1.example.com/index.php
}
当我在sample.php
中请求example.com/index.php
重定向并返回404时,我预测必须返回sub1.example.com/index.php
这是一个有效的网址
我的错误是什么?
注意:当我取消注释return 505
该工作并在浏览器中返回505
答案 0 :(得分:0)
由于您在sub1
声明中指定了完整网址,因此rewrite
的配置正在执行重定向。有关详细信息,请参阅this document。
使用内部重写,例如:
rewrite ^ /index.php last;
或更简单地说:
location / {
try_files $uri /index.php;
}
有关详情,请参阅this document。