ホームページ  >  記事  >  バックエンド開発  >  Nginx と CI フレームワークで 404 エラーを解決する方法

Nginx と CI フレームワークで 404 エラーを解決する方法

不言
不言オリジナル
2018-06-14 13:53:442718ブラウズ

この記事では、主に Nginx と CI の 404 エラーを解決する方法に関する関連情報を紹介します。必要な友人は参照してください。

私は最近 ci フレームワークを学び、簡単なプロジェクトを作成しました。環境はローカルに調整されていますが、リモート サーバーに展開すると、

http://example.com/(index.php)/ にアクセスできます (設定されたデフォルトのコントローラー クラスの場合)

http://example.com/(index.php)/[controller-class]/[controller-method] にアクセスできません (プロンプト 404 エラー!)

#Baidu の最後の理由 :


/index.php/abc などの URL の場合、Apache と Lighttpd はそれを「index.php?abc」と解釈しますが、nginx はリクエスト名が「index.php」 ディレクトリ内の abc ファイルの内容。したがって、CI は書き換えを構成しないと nginx では実行できませんが、Apache および Lighttpd では正常に動作します。


解決策 (強調は太字、強調は赤):

server {
listen ;
server_name example.com;
root /data/wwwroot/example/ index index.php index.html index.htm;
location ~* \.(css|js|swf|htm|jpg|png|gif|json|atlas)?$ {
expires d;
add_header Pragma public;
add_header Cache-Control "public";
}
location /controller-class/ {
if (!-e $request_filename) {
rewrite ^/controller-class/(.*)$ /controller-class/index.php?q=$uri&$args;
}
}
location ~ \.php$ {
fastcgi_pass ...:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE open_basedir=$document_root:/tmp/:/proc/;
include fastcgi_params;
}
}

上記はこの記事の全内容です。皆さんの学習に役立つことを願っています。ご注意ください。関連コンテンツをもっと見る PHP 中国語 Web サイト!

関連する推奨事項:

CI フレームワークによるシステムのコアクラスの拡張方法の分析について

# #CI フレームワークのパブリック モデル クラス定義と使用法

以上がNginx と CI フレームワークで 404 エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。