以下nginx
configuration似乎不工作,并访问http://example.com/xml_apps/
时返回404
错误 – 但是joomla网站从根urlhttp://example.com
工作正常
更新它看起来像请求正在发送到codeigniter应用程序,因为404错误来自CI应用程序。
http://example.com/xml_apps/index.php/xmlengine/jmprovince?category=1&count=10
我们是否需要某种configuration来添加codeigniter级别? 得到关于控制器/行动的工作。
server { listen 80; root /home/ubuntu/websites/example.com/public_html; index index.html index.htm index.php; server_name example.com; location / { try_files $uri $uri/ /index.php; } location /xml_apps/ { if ($request_uri ~ "^system.*"){ rewrite ^/xml_apps/(.*)$ /xml_apps/index.php?/$1 last; } if (!-e $request_filename){ rewrite ^/xml_apps/(.*)$ /xml_apps/index.php?/$1 last; } } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_hide_header X-Powered-By; fastcgi_param REQUEST_URI $request_uri; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; } }
至于CodeIgniter级别的设置,请编辑application / config / config.php文件(也可以在config.php中读取注释)
$config['base_url'] = 'http://example.com/xml_apps';
如果你想要好的网址,请使用下面的代码
$config['index_page'] = '';
至于Nginx的设置,请访问Nginx的社区 – 这一切都非常好的解释。
改变nginx设置
# removes access to "system" folder, also allows a "System.php" controller if ($request_uri ~* ^/system) { rewrite ^/(.*)$ /index.php?/$1 last; break; } # unless the request is for a valid file (image, js, css, etc.), send to bootstrap if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?/$1 last; break; }
没有什么错,配置文件,并假设你使用的是最新版本的NGINX,我强烈建议你看看你的网络地图拓扑结构,看看他们是否可能导致这个问题,2跳或更多,因为如果有是位于服务器主路由器后面的路由器,则HTTP协议由第一个路由器丢弃。 为了解决这个问题,我建议你跳到HYPER TERMINAL上,使用第一个路由器的ip route命令,把主机的ip域路由到干扰连接的rotuer。
希望这可以解决你的问题!
尝试用这个替换你的位置/ xml_apps /块
location /xml_apps/ { try_files $uri $uri/ /xml_apps/index.php?$args; }
并确保您的codeigniter base_url配置是正确的
$ config ['base_url'] =' http://example.com/xml_apps ';