検索
ホームページバックエンド開発PHPチュートリアルAPACHE の AcceptPathInfo ディレクティブの使用の概要_PHP チュートリアル

zfdemo を学習するときに、AcceptPathInfo コマンドの設定について言及しました。

仮想静化を行ったり、パスを美しく見せたりするときに、この URL に http://www.example.com/index.php/html1 が表示されることがあります。実際にアクセスされるのはルートディレクトリにあるindex.phpファイルで、/html1がPATH_INFO環境変数としてスクリプトに渡されます。 Apache の場合、上記のアドレスが正しく実行できるかどうかは、AcceptPathInfo ディレクティブの構成によって決まります

AcceptPathInfo ディレクティブ

冗長なパス名情報を持つリクエストを受け入れるかどうかを示します
構文 AcceptPathInfo On|Off|Default
デフォルト値 AcceptPathInfo Default
スコープ サーバー構成、仮想ホスト、ディレクトリ、.htaccess
オーバーライド項目 FileInfo
ステータスコア (C)
モジュールコア
互換性は Apache 2.0.30 以降でのみ利用可能

このディレクティブは、実際のファイル A の名前のリクエストを受け入れるかどうかを決定します(または実際のディレクトリに存在しないファイル) の後に冗長なパス名情報が続きます。この追加のパス名情報は、PATH_INFO 環境変数としてスクリプトに渡すことができます。

たとえば、/test/ が指すディレクトリに here.html というファイルが 1 つだけ含まれていると仮定すると、/test/here.html/more および /test/nothere.html/more のリクエストにより PATH_INFO 環境変数が設定されます。多くのための"。

AcceptPathInfo ディレクティブの値の範囲:

Off
リクエストは、実際のパスにマップされている場合にのみ受け入れられます。したがって、上記の /test/here.html/more のような実際のファイル名の後にパス名が続くリクエストは、「404 NOT FOUND」エラーを返します。
オン
先頭のパスが実際の既存のファイルにマッピングできる限り、リクエストは受け入れられます。このように、上記の /test/here.html が有効なファイルにマッピングできる限り、/test/here.html/more のリクエストは受信されます。
デフォルト
冗長なパス名情報を持つリクエストを受け入れるかどうかは、対応するプロセッサによって決定されます。通常のテキストを処理するコア プロセッサは、デフォルトで PATH_INFO を拒否します。 cgi-script や isapi-isa などのサーバー スクリプトに使用されるプロセッサは、デフォルトで PATH_INFO を受け入れます。
AcceptPathInfo ディレクティブの主な目的は、PATH_INFO を受け入れるかどうかのプロセッサのデフォルト設定をオーバーライドできるようにすることです。この保障は必要です。たとえば、INCLUDES のようなフィルターを使用して、PATH_INFO に基づいてコンテンツを生成する場合です。通常、コアプロセッサはそのようなリクエストを拒否するため、次の設定を使用してそのようなスクリプトを可能にすることができます:

Options +includes
SetOutputFilter INCLUDES
AcceptPathInfo On

Apache 2.0 以降のデフォルトでは、acceptpathinfo はありません

Acceptpathinfo は APACH2.0.30 以降のサーバーから削除されました。必要に応じて、http.conf に AcceptPathInfo On を追加する必要があります。つまり、元の

Options FollowSymLinks include
AllowOverride None
に変更されました
Options FollowSymLinks include
AllowOverride None
AcceptPathInfo On

このコマンドは、特定のファイル (または既存のディレクトリ) に含まれる存在しないファイルを受け入れるかどうかを決定します) がパス情報に付加されます。このパス情報は、スクリプト内に PATH_INFO 環境変数として表示されます。
たとえば、/test/ が指すディレクトリには、here.html というファイルが 1 つだけ含まれているとします。次に、/test/here.html/more および /test/nothere.html/more に対するリクエストは、/more のような PATH_INFO 変数を取得します。
AcceptPathInfo ディレクティブの 3 つのパラメーターは次のとおりです:
off
リクエストは、実際のパスにマップされている場合にのみ受け入れられます。したがって、実際のファイル名の後にパス名を指定した上記の /test/here.html/more のようなリクエストは、404 NOT FOUND エラーを返します。
on
前のパスが実際の既存のファイルにマップされている場合、このリクエストは受け入れられます。 /test/here.html が有効なファイルにマップされている場合、上記の例の /test/here.html/more のリクエストは受け入れられます。
デフォルト
追加のパス名を持つリクエストの処理方法は、対応するプロセッサによって決定されます。通常のテキストを処理するコア プロセッサは、デフォルトで PATH_INFO を拒否します。 cgi-script や isapi-isa などのサーバー スクリプトに使用されるプロセッサは、デフォルトで PATH_INFO を受け入れます。

PHP のグローバル変数 $_SERVER['PATH_INFO'] は、多くの CMS システムが URL を美しくするときにこのパラメーターを使用します。

次の URL の場合:
http://www.test.com/index.php/foo/bar.html?c=index&m=search
$_SERVER['PATH_INFO'] = '/foo/bar を取得できます.html'、この時点では $_SERVER['QUERY_STRING'] = 'c=index&m=search';
通常、最初に PHP プログラムを書き始めるときは、次のようなものを使用します: http://www.test.com /index .php?c=search&m=main のような URL は非常に奇妙に見えるだけでなく、検索エンジンにとっても非常に不親切です。多くの検索エンジンはインデックス作成時にクエリ文字列以降のコンテンツを無視しますが、Google はクエリ文字列を無視しませんが、クエリ文字列を含まない他のページに比較的高い PR 値を与えます。

以下は PATH_INFO を解析するための非常に簡単なコードです:

コードをコピーします コードは次のとおりです:

if( !isset( $_SERVER['PATH_INFO' ] ) ){
$pathinfo = 'デフォルト';
}else{
$pathinfo =explode('/', $_SERVER['PATH_INFO']);
}
if( is_array($pathinfo) AND !empty($) pathinfo) ){
$page = $pathinfo[1];
}else{
$page = 'a.php';



スラッシュを含むファイル名 「/」行に正常にアクセスできず、見つからないエラーが報告されます

システムが壊れた後、システムを再インストールし、php環境を設定します。使用するソフトウェアは以前のバージョンと同じです。 環境構築後は、作業プロジェクトはすべて単一エントリのファイルなので、index.phpファイルの後にスラッシュを付けて入力します。システムを変更する前にアクセスできるため、ソフトウェアのバージョンの問題を解決できます。

作業プロジェクトに入ろうとしたときに、理由がわかりませんが見つからないと報告されます。テストした結果、PHPファイル名にスラッシュ「/」が含まれていると正常にアクセスできないことが分かりました

色々な人に聞きましたがダメでした。 Google Du Niangは失敗しました

会社の上級PHPエンジニアを見つけました
Apacheには次のようなコマンドがあると言われました: AcceptPathInfo

Apache設定ファイルにAcceptPathInfoを追加すればOKです。


http://www.bkjia.com/PHPjc/326345.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326345.html技術記事 zfdemo を学習するときに、AcceptPathInfo コマンドの設定について触れましたが、仮想静化を実行したり、パスを美しくしたりしているときに、http://www.example.com/index.p... が表示されることがあります。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの継続的な使用:その持久力の理由PHPの継続的な使用:その持久力の理由Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPおよびPython:類似点と相違点を調査しますPHPおよびPython:類似点と相違点を調査しますApr 19, 2025 am 12:21 AM

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境