我有一个配置文件,其中我使用 public_html 之外的根目录,因为我想分离静态文件和 php。
root /home/user/domain;
location / {
try_files /static/$uri /static/$uri/ /php/index.php?$args;
}
location ~ \.php$ {
fastcgi_pass hiphop;
include /etc/nginx/fastcgi.conf;
try_files /static/$uri /static/$uri/ /php/index.php?$args;
}
我哪里错了?
答案1
你的方法有缺陷。例如, 会/static/$uri/
导致外部重定向,这意味着/static/
URI 将呈现到你的服务器,你的配置将尝试将其解析为/static/static/
。PHPtry_files
位置中的 正在尝试将/static/
文件作为 PHP 脚本执行。
您是否考虑过使用两个root
指令?也许:
root /home/user/domain/static;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
root /home/user/domain/php;
try_files $uri /index.php?$args;
fastcgi_pass hiphop;
include /etc/nginx/fastcgi.conf;
}