我试图在我的域的子目录中设置Codeigniter。 目前我只在索引页面上从Codeigniter获得一个404。 一旦想要去example.com/api/welcome/index我从nginx获得一个404。
我的nginx.conf :
location /api/ { alias /var/www/api/; try_files $uri $uri/ /api/index.php =404; location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; fastcgi_pass backend; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
和Codeigniter.conf :
$config['base_url'] = 'https:/example.com/api/'; $config['uri_protocol'] = 'REQUEST_URI'; $config['index_page'] = '';
得到它的工作,解决scheme是使用$ request_filename; 而不是$ document_root $ fastcgi_script_name;
location /api/ { alias /var/www/api/; try_files $uri $uri/ /api/index.php; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; fastcgi_pass backend; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } }