我应该写这样的东西
location !-f {
proxy_pass http://lst207.b.ls1.ru:8000/;
}
# static content
location ~* ^.+\.(jpg|jpeg|gif|css|js|ico|rar|gz|zip|pdf|tar|bmp|xls|doc|swf|mp3|avi|png|htc|txt|htc|flv)$ {
#root "$document_root$";
access_log off;
expires 7d;
}
但似乎“-f”标志不起作用
答案1
try_files 就是为这种情况设计的。
location / {
try_files $uri $uri/ @fallback;
}
location ~* \.(jpg|jpeg|gif|css|js|ico|rar|gz|zip|pdf|tar|bmp|xls|doc|swf|mp3|avi|png|htc|txt|htc|flv)$ {
access_log off;
expires 7d;
}
location @fallback {
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_pass http://lst207.b.ls1.ru:8000/;
}
答案2
如果您的 index.php 的第一行(在注释中)是:
header("HTTP/1.0 302 Found");
那么它应该向浏览器发送 302 而不是 404,但我是从 apache 的角度考虑,而不是 nginx。
第二行可能是这样的:
header("Location: <redirect location>");
这就够了吗?
答案3
location ~* ^.+.(jpg|jpeg|gif|css|js|ico|rar|gz|zip|pdf|tar|bmp|xls|doc|swf|mp3|avi|png|htc|txt|htc|flv)$ {
root /the/location/of/static;
access_log off;
expires 7d;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://lst207.b.ls1.ru:8000/;
}
这对你有用吗???