我很难让 nginx 在子目录中与 CakePHP 一起工作。
我正在使用 nginx,因为我只熟悉 Apache,并且我想学习一些新东西。我的目标是将 CakePHP 托管在一个子目录中。
我的 /etc/nginx/sites-available/default 文件如下所示:
server {
listen 0.0.0.0:80;
root /var/www/;
index index.html index.php;
include /etc/nginx/include/php;
error_page 404 = /404.html;
location / {
root index.html;
index index.php index.html index.htm;
autoindex on;
try_files $uri $uri/ /index.php;
}
location /randodb {
if (!-e $request_filename) {
rewrite ^/randodb(.+)$ /randodb/app/webroot/$1 last;
break;
}
}
location /randodb/app/webroot {
if (!-e $request_filename) {
rewrite ^/randodb/app/webroot/(.+)$ /randodb/app/webroot/index.php?url=$1 last;
break;
}
}
}
server {
listen 0.0.0.0:443;
root /var/www/;
index index.html index.php;
fastcgi_param HTTPS on;
include /etc/nginx/include/ssl;
include /etc/nginx/include/php;
error_page 404 = /404.html;
}
无论我做什么,/randodb 文件夹中的任何请求都会得到 301 重定向。
它总是将我重定向到http://nginx-php-fastcgi/randodb/
如果您想看到这种行为的实际效果:http: //www.matgilbert.com/randodb