ホームページ >バックエンド開発 >PHPチュートリアル >.htaccess 構文パラメータの説明_PHP チュートリアル
.htaccess ファイルにさらされた友人は、反対側の構文の一部を理解できない可能性があります。よく、大文字 L NC R QSA などの規則が続いているのを目にします。それが何を意味するか知っていますか?次の記事では、.htaccess ファイルの関連する構文パラメータについて簡単に説明しています。
チェーン|C(次のルールにリンク)
このタグは、現在のルールを次のルールにリンクします。これには、ルールが一致すると、その後続ルールが処理され続けるという効果があります。つまり、このタグは、ルールが一致しない場合、その後続ルールはスキップされます。たとえば、ディレクトリ レベルのルールで外部リダイレクトを実行する場合、「.www」を削除する必要がある場合があります (「.www」はここでは表示されません)。
cookie|CO=NAME:VAL:domain[:lifetime[:path]](cookie を設定)
クライアント側でCookieを設定します。 Cookie の名前は NAME で、値は VAL です。 Domain は Cookie のドメイン (.apache.org など)、オプションの Lifetime は Cookie の有効期間 (分)、オプションの path は Cookie のパスです。
env|E=VAR:VAL (環境変数の設定)
このタグは、環境変数 VAR の値を VAL に設定します。VAL には、拡張可能な正規表現後方参照 ($N および %N) を含めることができます。このタグを複数回使用して、複数の変数を設定できます。これらの変数は、後続の多くの状況で間接的に参照できます。通常は XSSI () または CGI ($ENV{VAR})、または後続の %{ENV: によって参照される RewriteCond で参照されます。 VAR} を命令の CondPattern パラメータに含めます。これを使用して、URL から削除された情報を記憶します。
禁止|F(禁止URL)
現在の URL を強制的に禁止します。つまり、HTTP 応答コード 403 (禁止) を直ちにフィードバックします。このタグを使用すると、複数の RewriteCond をチェーンして、特定の URL を条件付きでブロックできます。
gone|G(強制放棄URL)
現在の URL を強制的に廃止します。つまり、HTTP 応答コード 410 (廃止) を直ちにフィードバックします。このタグは、ページが放棄され、存在しないことを示すために使用します。
handler|H=Content-handler (コンテンツハンドラを強制的に指定)
対象ファイルのコンテンツハンドラーをContent-handlerとして強力にカスタマイズします。たとえば、ScriptAlias ディレクティブは、mod_alias モジュールをエミュレートして、マップされたフォルダー内のすべてのファイルを「cgi-script」プロセッサーによって強制的に処理するために使用されます。
last|L(終了ルール)
書き換え操作を直ちに停止し、それ以上の書き換えルールは適用されません。 Perlの最後のコマンドやC言語のbreakコマンドに相当します。このタグは、現在書き換えられている URL が後続のルールによって再び書き換えられるのを防ぐために使用されます。たとえば、これを使用して、ルート パス (/) の URL を実際の URL (例: /e/www/) に書き換えることができます。
次|N(最初からやり直し)
書き換え操作を再実行します(最初のルールからやり直します)。このとき、再度処理される URL は元の URL ではなく、最後の書き換えルールによって処理された URL になります。 Perl の next コマンドや C 言語の continue コマンドに相当します。このマークにより、再書き込み操作を再開できます (ループの最初にすぐに戻ります)。ただし、無限ループにならないように注意してください。
大文字小文字なし|NC(大文字小文字を無視)
パターンは大文字と小文字を無視します。つまり、パターンが現在の URL と一致する場合、A ~ Z と a ~ z の間に違いはありません。
noescape|NE (出力で URI をエスケープしないでください)
このフラグは、mod_rewrite が通常の URI エスケープ ルールを適用して結果を書き換えるのを防ぎます。 通常の状況では、特殊文字 (%、$、; など) は同等の 16 進エンコーディング (%25'、%24'、%3B など) にエスケープされます。このフラグは、そのようなエスケープを防止して、パーセント記号などの記号を出力に表示できるようにします。例:
RewriteRule /foo/(.*) /bar?arg=P1%3d$1 [R,NE] は /foo/zed を安全なリクエスト /bar?arg=P1=zed にリダイレクトできます
nosubreq|NS (内部サブリクエストを処理しません)
このフラグは、現在のリクエストが内部サブリクエストである場合に、書き換えエンジンに書き換えルールを強制的にスキップさせます。たとえば、mod_include がディレクトリのデフォルト ファイル (index.xxx) を検索しようとすると、Apache は内部でサブリクエストを生成します。ルールの書き換えは必ずしもサブリクエストに役立つわけではなく、ルールセット全体が有効な場合はエラーがスローされる場合もあります。したがって、このタグを使用して特定のルールを除外できます。使用原則: URL に CGI スクリプト プレフィックスを追加して CGI スクリプトで処理するように強制するが、サブリクエスト処理のエラー率 (またはリソース オーバーヘッド) が高い場合は、このタグを使用できます。
proxy|P (強制的にプロキシになる)
このフラグにより、置換コンポーネントがプロキシ リクエストとして内部的に強制的に送信され、書き換え処理が直ちに中断され、処理が mod_proxy モジュールに引き渡されます。この置換文字列が mod_proxy で処理できる有効な URI (http://www.phpernote.com で始まるなど) であることを確認する必要があります。そうしないと、プロキシ モジュールからエラーが返されます。このタグを使用すると、特定のリモート コンポーネントをローカル サーバーのドメイン名前空間にマッピングできるため、ProxyPass ディレクティブの機能が強化されます。注: この機能を使用するには、mod_proxy モジュールを有効にする必要があります。
パススルー|PT (次のプロセッサにハンドオーバー)
このタグは、書き換えエンジンに内部 request_rec 構造体の uri フィールドをファイル名フィールドの値に設定するように強制します。この小さな変更により、RewriteRule ディレクティブの出力を Alias、ScriptAlias、リダイレクトおよびその他のディレクティブの後処理を実行します [原文: このフラグは、Alias、ScriptAlias、Redirect、およびさまざまな URI からファイル名への変換プログラムからのその他のディレクティブを使用して、RewriteRule ディレクティブの出力の後処理を有効にするための単なるハックです。 ]。その意味を説明するために例を示します: /abc を /def に書き換えてから、mod_alias を使用して /def を /ghi に変換する場合は、次のようにすることができます:
RewriteRule ^/abc(.*) /def$1 [PT]
エイリアス/def/ghi
qsappend|QSA(クエリ文字列を追加)
このフラグは、書き換えエンジンに既存の置換文字列を単純に置き換えるのではなく、クエリ文字列を強制的に追加させます。書き換えルールを通じてリクエスト文字列に情報を追加する必要がある場合は、このタグを使用できます。
リダイレクト|R [=コード](強制リダイレクト)
置換が http://thishost[:thisport]/ で始まる場合 (新しい URL を URI にする)、外部リダイレクトを強制できます。コードが指定されていない場合は、HTTP 応答コード 302 (Temporary Move) が生成されます。 300 ~ 400 の範囲の別の応答コードを使用する必要がある場合は、ここで指定するだけです (または、次のシンボリック名のいずれかを使用します: temp (デフォルト)、permanent、seeother)。これを使用して、「/~」を「/u/」に書き換えたり、/u/user に常にスラッシュを追加したりするなど、正規化された URL をクライアントにフィードバックします。
注: このタグを使用する場合は、置換フィールドが有効な URL であることを確認する必要があります。そうしないと、無効な場所を指すことになります。また、このタグ自体は URL の先頭に http://thishost[:thisport]/ を付けるだけで、書き換え操作は続行されることに注意してください。通常、書き換え操作を停止してすぐにリダイレクトする必要があるため、L フラグも使用する必要があります。
skip|S=num (後続のルールをスキップ)
このタグは、書き換えエンジンに現在の一致ルールの後の num 個のルールを強制的にスキップさせます。 if-then-else 構造をシミュレートできます。最後のルールは then 節であり、skip=N ルールは else 節です。注:chain|C タグとは異なります。
type|T=MIME タイプ (必須の MIME タイプ)
ターゲット ファイルの MIME タイプを MIME タイプに強制します。これは、特定の条件に基づいてコンテンツ タイプを強制するために使用できます。たとえば、次のコマンドは、.phps 拡張子を付けて呼び出すと、PHP ソース コード (application/x-httpd-php-source) の MIME タイプに従って mod_php によって .php ファイルが表示されます。
RewriteRule ^(.+.php)s$ $1 [T=application/x-httpd-php-source]
興味がありそうな記事
phpMyAdmin エラーなしでセッションを開始できないエラー解決策http://www.bkjia.com/PHPjc/764191.html