※この投稿が晴練雨読様に拾われたのはあまりにも意外だったので、追記で書いときます。
絶対役に立ちませんw
**
よーし!
色々学ぶべきことがありすぎて非常にふらふらしてるんですが。
.htaccessな!
最近良く見るけど、正直よく分からない。
で、
Q) wwwあり(なし)のURLで統一して検索エンジンに登録する方法は?
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(kwhunter\.com)(:80)? [NC]
RewriteRule ^(.*) http://www.kwhunter.com/$1 [R=301,L]
order deny,allow
これですよ。
そこで.htaccessを知らない自分が無理矢理意味を解釈してみた。
※以下、完全に想像の世界です。たまたま検索で辿り着いても絶対に参考にしないでください!
よくモバイルサイトの振り分けなんかで見るのが
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "DoCoMo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "J-PHONE" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "KDDI" [NC,OR]
RewriteRule ^(.*)$ http://モバイル版のドメイン/$1 [R,L]
参照:UserAgentで振り分けて携帯のみを携帯サイトにリダイレクトする.htaccess
こういうのね。
**
ここで考え方転換。
普通に調べた方が早くね?
というわけで二つのコードを見比べて意味を考えようかと思ったんですが、調べながら解釈してみます。
ただ、自分自身が判ってないところが多々あるので、参照先のサイトを見ていただけるとありがたいです。
所謂まとめページみたいなイメージですかね・・・。
URLの書き換え Rewrite
まず、両者共通の最初の「RewriteEngine On」
書き換えの可否を設定。
両者とも「On」なので「書換可」ですかね。
次に
RewriteCond テスト文字列 条件 パターン。
条件によるテスト文字列とパターンの比較。
これは分かりやすいかも。
上の例でいうと先に出てきた方がRewriteCond %{HTTP_HOST} ^(kwhunter\.com)(:80)? [NC]
なので、
「wwwなしの場合」とかそんな意味だと思う。(多分!)
下の例は
RewriteCond %{HTTP_USER_AGENT} "DoCoMo" [NC,OR]
「ユーザーエージェントがdocomoの場合」なんだろう。
サクサクいきます。
RewriteRule パターン 置換対象。
パターンを置換対象で置き換える。
RewriteRule ^(.*) http://www.kwhunter.com/$1 [R=301,L]
⇒「wwwありに書き換える」
R=301は301リダイレクト。
で、Lは終わりの記号みたいですね。
書き換えが行われたら終了 (Last) にする。
現在の書き換え後の URL が後続のルール によってそれ以上書き換えられることを防止します。
RewriteRule ^(.*)$ http://モバイル版のドメイン/$1 [R,L]
⇒これはdocomoだったらモバイルサイトにリダイレクト(この場合、特に指定なし?)、終わり、みたいな感じか。
途中の[NC,OR]は
[NC] パターンについて、文字の大小を区別しない(No Case)。 つまり、"A-Z" と "a-z" は区別されません。
[OR] または。
なので下の例でいうところの「docomoまたはJ-PhoneまたはKDDIの時…かつ、大文字小文字を区別しないよ」ということなのかも。
こうやって分解してみると案外分かりそうなもんですね。
もうちょっとちゃんと勉強しないといけないですけど。
こんなんじゃ人に説明すら出来ないw
細かい所も端折ってるしな。
一応繰り返しますが、参照にしないでくださいw
正直メモです。多少の意味ぐらいは分かっておきたかったので…
でもちゃんと書けるようになりたいですね。


コメント