私IT業界にいるけど.htaccessを知らない業界の人って…

※この投稿が晴練雨読様に拾われたのはあまりにも意外だったので、追記で書いときます。
絶対役に立ちません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
正直メモです。多少の意味ぐらいは分かっておきたかったので…
でもちゃんと書けるようになりたいですね。

コメント

タイトルとURLをコピーしました