ホームページ >バックエンド開発 >PHPチュートリアル >Apache_PHP チュートリアルの RewriteCond ルール パラメーターの概要

Apache_PHP チュートリアルの RewriteCond ルール パラメーターの概要

WBOY
WBOYオリジナル
2016-07-20 11:13:31848ブラウズ

ApacheのRewriteCondステートメントは私にとって何度も理解するのが難しい点でしたが、今回ようやくそれが何を意味するのかが大まかにわかりました。
RewriteCond は、プログラムの if ステートメントと同じです。つまり、1 つまたは複数の条件が満たされると、RewriteCond のすぐ下の RewriteRule ステートメントが実行されます。これは、RewriteCond の最も独創的で基本的な関数です。理解できましたので、以下で見てみましょう。いくつかの例を見てみましょう。

リーリー


上記のステートメントの機能は、FF ブラウザを使用して Index.php ファイルにアクセスすると、一部のモバイル端末を使用して Index.m.php ファイルにアクセスできるようにすることです。ファイルindex.phpにアクセスすると、実際にはindex.L.phpにアクセスします。別のブラウザを使用してアクセスすると、index.b.phpにリダイレクトされます。より鮮明に言うと、上記のステートメントは、プログラム内の次のステートメントと同等です (PHP ステートメントを例にします):

リーリー


例 2 を見てください:
RewriteCond %{HTTP_REFERER} (www.test.cn)
RewriteRule (.*)$ test.php
上記のステートメントの機能は、前のステートメントにアクセスした場合です。ページ ホスト アドレスは www.test.cn なので、現在アクセスしているページに関係なく、test.php にアクセスするようにリダイレクトされます。

例 3 を見てみましょう:

リーリー


上記のステートメントの機能は、アドレスが host1、host2、または host3 の場合、test.php にジャンプすることです。ここから、RewriteCond ステートメント間のデフォルトは AND であることがわかります。OR が必要な場合は、明確に記述する必要があります。

私が収集した便利な書き換えルールをいくつか示します:


RewriteCond %{REQUEST_FILENAME} !-d //#ディレクトリが存在する場合はRewriteRuleを実行せずにディレクトリに直接アクセスします

RewriteCond %{ REQUEST_URI}! ^.*(/.css|/.js|/.gif|/.png|/.jpg|/.jpeg)$ //#これらの接尾辞を持つファイルの場合は、書き換えせずに直接ファイルにアクセスします

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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/440360.html技術記事 Apache の RewriteCond ステートメントは私にとってずっと難解な点で、何度も理解しようとしましたが、今回ようやくその意味が大まかに理解できました。 RewriteCond は私に似ています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。