2017-03-05 59 views
0

我nginx的配置這樣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這是一個有效的URL

我的錯誤是什麼? 注:當我取消return 505這是工作和瀏覽器

回答

0

返回505已指定的rewrite聲明一個完整的URL您的sub1配置進行重定向。有關詳細信息,請參閱this document

使用一個內部重寫,例如:

rewrite^/index.php last; 

或者更簡單地說,有:

location/{ 
    try_files $uri /index.php; 
} 

更多見this document