ホームページ >バックエンド開発 >PHPチュートリアル >nginx は pathinfo を実装するためにいくつのモードを必要としますか?

nginx は pathinfo を実装するためにいくつのモードを必要としますか?

WBOY
WBOYオリジナル
2016-10-17 09:30:00917ブラウズ

私はリライトを通じて正常にリダイレクトできることを知っています。
しかし、Niao 兄弟のブログで、書き換え以外に設定を渡す別の方法があることを知りました。
Niao 兄弟の nginx パス情報ポータル
Niao 兄弟はブログで、書き換えリダイレクト以外の方法にはどのような原則が使用されているかについて言及しました。

返信内容:

私はリライトを通じて正常にリダイレクトできることを知っています。
しかし、Niao 兄弟のブログで、書き換え以外に設定を渡す別の方法があることを知りました。
Niao 兄弟の nginx パス情報ポータル
Niao 兄弟はブログで、書き換えリダイレクト以外の方法にはどのような原則が使用されているかについて言及しました。

ブラザー・バードによるこの記事は、実際にはコンセプトが少しわかりにくいです。
まず第一に、Niao 兄弟が言及した Rewrite リダイレクト方法とは、クエリ文字列を介した Nginx リダイレクトを通じて PATH_INFO を PHP に渡すことを指します。
例えば/user/1通过重定向规则,改为/index.php?path_info=/user/1をリクエストします。
この方法では、PHP スクリプトが PATH_INFO を分析するためにクエリ文字列を収集する必要があり、特定の互換性の調整が必要です。

Niao 兄弟が紹介した 2 番目の方法は、PHP に PATH_INFO 情報を逆アセンブルさせることです。
例えば/index.php/user/1,PHP可以自动拆解脚本之后的路径,作为PATH_INFO,这里就是/user/1をリクエストします。
ニアオ兄弟は、PHP を逆アセンブルすると特定のセキュリティ上の問題が発生する可能性があるため、この方法はまだ推奨されていないと述べました。

最後に、Niao 兄弟は別の方法を紹介しました。一般的には、これまで通り /index.php/user/1拆解出/user/1 の方法ですが、今回はリクエストを受け取った Nginx 上で逆アセンブル処理が完了します。 PHP で逆アセンブリを完了すると、より多くの情報を使用でき、より直接的なため、より効果的です。

でも、でも、一般的には/index.php/user/1这种形式展示URL,而是希望隐藏程序的入口,也就是以/user/1では表示しません。したがって、このプロセスでは、プログラム エントリを非表示にしてプログラム エントリ スクリプトにリダイレクトするプロセスを完了するために、Nginx の Rewrite を使用する必要があります。インターネット上でよく見られる PHP+Nginx の隠しエントリ構成は、PATH_INFO を解体する最後の方法と組み合わせて Rewrite することで完成します。

したがって、Niao 兄弟の提案には特定の問題があります。PATH_INFO を逆アセンブルする最初の方法を、Nginx の Rewrite と単純に同一視することはできません。

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