RewriteCond は、プログラムの if ステートメントと同じです。これは、1 つまたは複数の条件が満たされた場合に、RewriteCond のすぐ下の RewriteRule ステートメントが実行されることを意味します。これは、RewriteCond の最も独創的で基本的な関数です。いくつかの例を見てください。
コードをコピーします コードは次のとおりです:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Mozilla//5/.0.*
RewriteRuleindex.php HTTP_USER_AGENT} ^Lynx .*
RewriteRuleindex .phpindex.L.php
RewriteRuleindex.phpindex.b.php
上記のステートメントの機能は、FFブラウザを使用してindex.phpファイルにアクセスすると、ファイルにアクセスするときに自動的に一部のモバイル端末でindex.m.phpにアクセスすると、実際にはindex.phpファイルにアクセスする際にindex.L.phpにアクセスすることになり、他のブラウザでアクセスすると、index.phpにアクセスします。 .b.php。より鮮明に言うと、上記のステートメントは、プログラム
内の次のステートメントと同等です (PHP ステートメントを例に挙げます):
コードをコピーします コードは次のとおりです:
if($_SERVER ['HTTP_USER_AGENT'] = = 'Mozilla/5.0')
{
//index.m.phpにアクセスします
}
else if($_SERVER['HTTP_USER_AGENT'] == 'Lynx')
{
/ //index.L.php へのアクセスへジャンプ
}
else
//index.b.php へのアクセスへジャンプ
例 2 を見てください:
RewriteCond %{HTTP_REFERER} (www.test.cn)
RewriteRule (.*)$ test.php
上記のステートメントの機能は、以前にアクセスしたページのホスト アドレスが www.test.cn の場合、現在どのページにアクセスしているかに関係なく、テストにジャンプすることです。 phpにアクセスします。
例 3 の確認:
コードをコピーします コードは次のとおりです:
RewriteCond %{REMOTE_HOST} ^host1.* [OR]
RewriteCond %{REMOTE_HOST} ^host2.* [OR ]
RewriteCond % {REMOTE_HOST} ^host3.*
RewriteRule (.*)$ test.php
上記のステートメントの機能は、アドレスが host1、host2、または host3 の場合、test.php にジャンプすることです。ここから、RewriteCond ステートメント間のデフォルトは AND であることがわかります。OR が必要な場合は、明確に記述する必要があります。
私が集めた便利な書き換えルールをいくつか紹介します:
RewriteCond %{REQUEST_FILENAME} !-f //ファイルが存在する場合、次の RewriteRule を実行せずにファイルに直接アクセスします (これはファイルでも、ファイルが存在しないため、書き換えを実行してください)
RewriteCond %{REQUEST_FILENAME} !-d //#ディレクトリが存在する場合は、RewriteRuleを実行せずに直接ディレクトリにアクセスします
RewriteCond %{REQUEST_URI} !^.*(/.css|/. js|/.gif| /.png|/.jpg|/.jpeg)$ //#これらの接尾辞を持つファイルの場合、書き換えずに直接ファイルにアクセスします
http://www.bkjia.com/PHPjc/327986.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327986.html技術記事 RewriteCond は、プログラムの if ステートメントと同じです。これは、1 つまたは複数の条件が満たされた場合に、RewriteCond のすぐ下の RewriteRule ステートメントが実行されることを意味します。これがオリジナルであり、基本です...
。