Php
無法讓 Codeigniter URL 在 Nginx 上執行
在我的 Windows 上成功設置 nginx 後,我遇到了另一個問題。不過,一切都照常進行。我能夠訪問頁面並且 PHP 工作正常,但是當我嘗試使用 Codeigniter 類型的 url 時出現問題,我的意思是,
https://localhost/index.php/<controller>
即使我在“index.php”之後插入一個斜杠,
No input file specified
也會引發錯誤,我認為這意味著 FastCGI 伺服器無法擷取正確的文件。這是我的配置文件,server { server_name localhost; listen 443; root /wamp/www/; ssl on; ssl_certificate /wamp/www/server.crt; ssl_certificate_key /wamp/www/server.key; location / { index index.php index.html index.htm; } location /NavHawk2 { try_files $uri $uri/ index.php/; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
錯誤日誌和訪問日誌中沒有任何內容填充 404 請求。如果我刪除 try_files 行,我會得到一個 nginx 404 頁面。
看起來你需要使用
fastcgi_split_path_info
.一個例子:
fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info;