我正在尝试从 Nginx 上的子文件夹中运行 CakePHP 应用程序,但找不到静态文件,而是将其传递给应用程序控制器。这是我当前的配置:
location /uniquetv {
index index.php index.html;
if (-f $request_filename) {
break;
}
if (!-e $request_filename) {
rewrite ^/uniquetv(.+)$ /uniquetv/webroot/$1 last;
break;
}
}
location /uniquetv/webroot {
index index.php;
if (!-e $request_filename) {
rewrite ^/uniquetv/webroot/(.+)$ /uniquetv/webroot/index.php?url=$1 last;
break;
}
}
有任何想法吗? :)
答案1
Throlkim,当你浏览到你想要使用的 URL 时,具体会显示什么?例如,你是否收到了 504 错误消息等
你需要有类似的东西,对我有用
server {
listen 80;
server_name yourwebsite.com;
access_log /path_to_your_logfile/log/access.log;
error_log /path_to_your_logfile/log/error.log;
location / {
root /path_to_cake_root/cake/app/webroot;
index index.php;
if (-f $request_filename) {
break;
}
if (!-f $request_filename) {
rewrite ^/(.+)$ /index.php?url=$1 last;
break;
}
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /path_to_cake_root/cake/app/webroot/index.php;
#$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
}
我问了一个类似的问题,这个问题按照接受的答案和一些调整得到了解决cakephp 和 nginx 配置/重写规则