我想在一个主域名下的子文件夹中创建一个项目(sitename.org/projectname)。这是一个带有nginx 1.2.0的cakephp 1.3项目。我一直在网上搜索/尝试解决方案2天的大部分时间。我最终会添加更多项目作为子文件夹,每个项目都有自己的根目录。
首先,如果站点位于根域中,则为工作配置。
server {
listen 80;
server_name sitename.org
location / {
root /export/home/sitename.org/projectname/app/webroot;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$uri&$args;
location ~ .*\.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
}
我想要的是当location是子文件夹(sitename.org/projectname)时。我已尝试使用try_files和fastcgi进行各种配置,但我通常最终得到“未指定输入文件”。又名我的配置错了。
任何提示都将不胜感激。
答案 0 :(得分:3)
通过将根目录更改为更高目录并重写路径,找到了我的答案。希望这可以帮助遇到类似情况的其他人。
location /projectname {
root /export/home/sitename.org/;
index index.php index.html index.htm;
rewrite ^/projectname/(.*)$ /projectname/app/webroot/$1 break;
try_files $uri $uri/ /projectname/app/webroot/index.php?q=$uri&$args;
location ~ .*\.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}