ApacheでのRewriteCondルールパラメータの説明
5345 ワード
ApacheでのRewriteCondルールパラメータの説明(回転)
に発表
2011年02月21日
から
夢三秋
CodeIgniter2.0はもう20日以上出てきましたね~つまり私がずっと使っていたphpフレームワーク(CI).ずっとjqueryを研究していたので、CIを忘れてしまいました.ふふ~~今日は会社のことがあまり多くないので、CI 2を熟知し始めました.0のいくつかの新しい特性~~ちょうどもう一度CIのいくつかの特性を復習します.朝見るものは多くありませんが、その中にはこのような知識があります.CIではデフォルトでindexです.phpファイルはあなたのURLに含まれます.urlからこのデフォルトのindexを削除したい場合は.phpは、Apacheの強力なRewrite機能を使う必要があります.CIの公式ドキュメントで示される解決策は、次のとおりである.
作成.htaccessファイルは、Webサイトのルートディレクトリの下に配置されます.ファイルの内容は次のとおりです.
ほほほ~~本人はAppacheのこれらの规则に対してもあまり深く研究したことがないため、そこでネット上でこのappacheのRewriteCondについての少しの资料を探して、书くのがとても详しくて、みんなに分かち合います:
———————————小さく分割して———————————————————————Apacheの中のRewriteCond文は私にとってずっと難点で、何度もそれを理解しようとしたが、構造がなく、今回はやっとその意味を知った.RewriteCondは、我々のプログラムのif文のように、ある条件またはいくつかの条件に合致すればRewriteCondの下に隣接するRewriteRule文を実行することを示しています.これがRewriteCondの最も原始的で基礎的な機能であり、理解しやすいように、いくつかの例を見てみましょう.
上の文の役割は、FFブラウザでindexにアクセスする場合です.phpというファイルにアクセスするとindexに自動的にアクセスさせます.m.phpというファイルは、いくつかのモバイル端末でアクセスするとindexにアクセスさせます.phpというファイルへのアクセスは実際にindex.L.phpに行って、他のブラウザでアクセスするとindexにジャンプさせます.b.php.イメージを言うと、上の文はプログラムの下の文と同じです(PHP文を例にとります).
例2を見てみましょう.
上の文の役割は、前のページのホストアドレスがwww.testである場合です.cnは、現在アクセスしているページにかかわらず、testにジャンプします.phpのアクセス.
例3を見てみましょう.
上記の文の役割は、あなたのアドレスがhost 1またはhost 2またはhost 3の場合、testにジャンプすることです.php.ここから,RewriteCond文間のデフォルトはANDであり,ORが欲しい場合は明確に書くことが分かる.
以下は、自分がコレクションしたいくつかの有用な書き換えルールです.
view source
print
?
———————————小さく分割する—————————————————————本文は以下から抜粋する.http://hi.baidu.com/%D2%BB%CE%C4%CC%EC/blog/item/ace7f14e19851cc4d0c86af2.html
に発表
2011年02月21日
から
夢三秋
CodeIgniter2.0はもう20日以上出てきましたね~つまり私がずっと使っていたphpフレームワーク(CI).ずっとjqueryを研究していたので、CIを忘れてしまいました.ふふ~~今日は会社のことがあまり多くないので、CI 2を熟知し始めました.0のいくつかの新しい特性~~ちょうどもう一度CIのいくつかの特性を復習します.朝見るものは多くありませんが、その中にはこのような知識があります.CIではデフォルトでindexです.phpファイルはあなたのURLに含まれます.urlからこのデフォルトのindexを削除したい場合は.phpは、Apacheの強力なRewrite機能を使う必要があります.CIの公式ドキュメントで示される解決策は、次のとおりである.
作成.htaccessファイルは、Webサイトのルートディレクトリの下に配置されます.ファイルの内容は次のとおりです.
1
RewriteCond $1 !^(index\.php|images|robots\.txt)
2
RewriteRule ^(.*)$ /index.php/$1 [L]
ほほほ~~本人はAppacheのこれらの规则に対してもあまり深く研究したことがないため、そこでネット上でこのappacheのRewriteCondについての少しの资料を探して、书くのがとても详しくて、みんなに分かち合います:
———————————小さく分割して———————————————————————Apacheの中のRewriteCond文は私にとってずっと難点で、何度もそれを理解しようとしたが、構造がなく、今回はやっとその意味を知った.RewriteCondは、我々のプログラムのif文のように、ある条件またはいくつかの条件に合致すればRewriteCondの下に隣接するRewriteRule文を実行することを示しています.これがRewriteCondの最も原始的で基礎的な機能であり、理解しやすいように、いくつかの例を見てみましょう.
1
RewriteEngine on
2
RewriteCond %{HTTP_USER_AGENT} ^Mozilla\/5\.0.*
3
RewriteRule index.php index.m.php
4
5
RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
6
RewriteRule index.php index.L.php
7
8
RewriteRule index.php index.b.php
上の文の役割は、FFブラウザでindexにアクセスする場合です.phpというファイルにアクセスするとindexに自動的にアクセスさせます.m.phpというファイルは、いくつかのモバイル端末でアクセスするとindexにアクセスさせます.phpというファイルへのアクセスは実際にindex.L.phpに行って、他のブラウザでアクセスするとindexにジャンプさせます.b.php.イメージを言うと、上の文はプログラムの下の文と同じです(PHP文を例にとります).
01
if
(
$_SERVER
[
'HTTP_USER_AGENT'
] ==
'Mozilla/5.0'
)
02
{
03
// index.m.php
04
}
05
else
if
(
$_SERVER
[
'HTTP_USER_AGENT'
] ==
'Lynx'
)
06
{
07
// index.L.php
08
}
09
else
10
// index.b.php
例2を見てみましょう.
1
RewriteCond %{HTTP_REFERER} (www.test.cn)
2
RewriteRule (.*)$ test.php
上の文の役割は、前のページのホストアドレスがwww.testである場合です.cnは、現在アクセスしているページにかかわらず、testにジャンプします.phpのアクセス.
例3を見てみましょう.
1
RewriteCond %{REMOTE_HOST} ^host1.* [OR]
2
RewriteCond %{REMOTE_HOST} ^host2.* [OR]
3
RewriteCond %{REMOTE_HOST} ^host3.*
4
RewriteRule (.*)$ test.php
上記の文の役割は、あなたのアドレスがhost 1またはhost 2またはhost 3の場合、testにジャンプすることです.php.ここから,RewriteCond文間のデフォルトはANDであり,ORが欲しい場合は明確に書くことが分かる.
以下は、自分がコレクションしたいくつかの有用な書き換えルールです.
view source
?
1
RewriteCond %{REQUEST_FILENAME} !-f // , , RewriteRule.( )
2
3
RewriteCond %{REQUEST_FILENAME} !-d //# RewriteRule
4
5
RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$ //# , , Rewrite
———————————小さく分割する—————————————————————本文は以下から抜粋する.http://hi.baidu.com/%D2%BB%CE%C4%CC%EC/blog/item/ace7f14e19851cc4d0c86af2.html