ホームページ > バックエンド開発 > PHPチュートリアル > ThinkPHP URL書き換えとPATHINFOをサポートするNginxを搭載

ThinkPHP URL書き換えとPATHINFOをサポートするNginxを搭載

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 13:07:24
オリジナル
1022 人が閲覧しました

ThinkPHP の URL 書き換えと PATHINFO
をサポートするように Nginx を構成する

ThinkPHP は、PATHINFO と URL 書き換えによるわかりやすい URL の提供をサポートしています。構成ファイルで 'URL_MODEL' => 2 を設定するだけです。 Apache では、通常のアクセスのために mod_rewrite モジュールを有効にするだけで済みます。ただし、Nginx はデフォルトで PATHINFO をサポートしていないため、nginx.conf ファイルを変更する必要があります。

インターネットで多くの方法を検索しましたが、どれもうまくいきませんでした。1 日かけて調べた結果、「URL_MODEL」=> 2 の状況は、次の構成で完全にサポートできることがわかりました。
?index インデックス.php;?
?if (!-e $request_filename) { ?
?rewrite ^/project/(.*)$ /project/index.php/$1 last;?
?break;?
?}?
?}?
??
?location ~ .+.php($|/) {?
?set $script $uri; ?
?set $ path_info "/";?
?if ($uri ~ "^(.+.php)(/.+)") {?
?set $script $1;?
?set $path_info $2 ;?
?}?
??
?fastcgi_pass 127.0.0.1:9000;?
?fastcgi_indexindex.php?IF_REWRITE=1;?
? include /APMSer/nginx/conf /fastcgi_params;?
?fastcgi_param PATH_INFO $path_info;?
?fastcgi_param SCRIPT_FILENAME $document_root/$script;?
?fastcgi_param SCRIPT_NAME $script;?
?}


ここでは、プロジェクト内のすべてのリクエストが処理のためにindex.phpに転送されます。これはThinkPHPの単一のエントリファイルであり、その後、PHPファイルに対するリクエストは処理およびサポートのためにfastcgiに渡されます。 PATH_INFO 用が追加されました。

Nginx を再起動すると、http://localhost/project/Index/insert や http://localhost/project/index.php/Index/delete などの URL に正しくアクセスできるようになります。

もう 1 つ注意すべき点は、Nginx 設定ファイル内の if とそれに続く括弧の間にスペースが必要であることです。そうしないと、不明なディレクティブ エラーが報告されます。これを調整するのに長い時間がかかりました

?

1階 wpeng1123 2011-04-10
私のプロジェクトファイルは test で、ThinkPHP をテスト下に置いています。このように変更した後、ログインページにアクセスすると、index.php/Public/login にジャンプしましたが、システムエラーが発生しました。

システムエラーが発生しました
[再試行][戻る]または[ホームページに戻る]を選択できます
[エラーメッセージ]

パブリックモジュールをロードできません

解決中

2階 ジョクソン 2011-11-22
同じです。 。 。 。

3階 孟徳君 2011-11-22
パスの構成が正しくありません。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート