我在Nginx服务器中运行CodeIgniter 3.0.6,子路径最终服务于/index.php
,而不是/<installdir>/index.php
。因此,如果我要求/CodeIgniter-3.0.6/home/
,我会按照/index.php
页面而不是/CodeIgniter-3.0.6/index.php
按预期提供服务。请注意,我的CodeIgniter应用程序最终将驻留在/2016/
。
我怀疑这是由于我的Nginx安装配置错误,而不是CodeIgniter相关的东西?我的Nginx安装在Ubuntu 16.04上运行。 / etc / nginx / sites-enabled / default的内容为:
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi.conf;
}
还有什么我应该改变的吗?
答案 0 :(得分:0)
如果您的服务器有一个主要入口点位于/CodeIgniter-3.0.6/index.php
的应用程序,您应该设置这样的位置:
location / {
try_files $uri $uri/ /CodeIgniter-3.0.6/index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi.conf;
}
这样,任何与资源文件或.php
文件不匹配的URI都将路由到您的应用程序默认入口点/CodeIgniter-3.0.6/index.php
。
但是,如果有多个应用程序,/index.php
和/CodeIgniter-3.0.6/index.php
是两个不同的入口点,您可能需要为每个应用程序设置位置,可能是这样的:
location / {
try_files $uri $uri/ /index.php;
}
location /CodeIgniter-3.0.6 {
try_files $uri $uri/ /CodeIgniter-3.0.6/index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi.conf;
}
这样,只有以/CodeIgniter-3.0.6
开头的URI才会被路由到该应用程序的默认入口点。