bass-inu's blog

非IT企業Web担当者だった無職の雑記

「www」の有り無しを統一しつつ、携帯を振り分けるhtaccessメモ

例:

http://○○.com/.htaccess
      └/mobile/

Apacheの「mod_rewrite」が使えること。
※「www」は無しで統一
※携帯用サイトは「mobile」ディレクトリ内
※ユーザーエージェントで携帯を振り分ける。そのため偽装すればPCからもアクセス可能。

#携帯振り分け
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/mobile
RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (J-PHONE|Vodafone|Softbank|MOT-) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (KDDI|UP\.Browser) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (PDXGW|DDIPOKET|WILLCOM) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ASTEL [NC,OR]
RewriteCond %{HTTP_USER_AGENT} L-mode [NC]
RewriteRule ^(.*)$ /mobile/$1 [R,L]

#「www」無しに統一
RewriteCond %{HTTP_HOST} ^(www\.○○\.com)(:80)? [NC]
RewriteRule ^(.*)$ http://○○.com/$1 [R=301,L]


ちなみに「www」有りで統一する場合

RewriteCond %{HTTP_HOST} ^(○○\.com)(:80)? [NC]
RewriteRule ^(.*)$ http://www.○○.com/$1 [R=301,L]


オプションのメモ
●RewriteCondのオプション
[NC] 大文字小文字を区別しない
[OR] または。設定しない場合は「AND」になる。

●RewriteRuleのオプション
[R] 302(一時的移動)。「=301」をつければ301(永久移動)
[L] Last。この条件にマッチしたら終了する。


他にも色々設定できます。あーむずかし…(´д`;)
検索しまくって色んなサイトを参考にさせていただきました。


主に参考にさせていただきました。
http://webtech.akijapan.com/htaccess/rewrite.phtml


もっと詳しく知りたいとき。
google:apache rewrite


正規表現がわかるとやり易いかも。
google:正規表現