[.htaccess]サイト作成時のリダイレクト系の.htaccess
この記事は約6分ぐらいで読めます
仕事の中で引っかかったことを備忘録として書こうと思ってた「調べる」カテゴリですが、いやーなかなか書く機会がなくてw今日は壮絶に引っかかったので残しておきます。
あと自信のない領域ゆえにいつもにも増してツッコミ歓迎ですw
.htaccess設置で注意すること
- 名前が「.htaccess.txt」になったらアップロード後に「.htaccess」にリネームする
- 最後は改行する
- ファイルのパーミッション設定は604
- 文字コードはEUC-JP。Shift_JISでもよかったりするみたい
サイト作成時のwwwアリナシ等のリダイレクト系の.htaccess
wwwナシのURLのアクセスをwwwアリに
下記1、2の書き方はどちらでも効果は同じようです。ここの書き方のミスで壮絶にハマったのですが…まあ1の方が簡単ですよね。URLの部分だけ書き換えましょう。
# wwwナシをwwwアリに1
RewriteEngine on
RewriteCond %{HTTP_HOST} ^http://example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
# wwwナシをwwwアリに2
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
wwwアリのURLのアクセスをwwwナシに
こちらも同様です。ちなみにRewriteEngine onは一回宣言すれば大丈夫。そこだけコピペるために一応書いてます。
# wwwアリをwwwナシに1
RewriteEngine on
RewriteCond %{HTTP_HOST} ^http://www.example.com [NC]
RewriteRule ^(.*) http://example.com/$1 [R=301,L]
# wwwアリをwwwナシに2
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
index.htmlでのアクセスをサイトTOPのURLに
末尾にindex.htmlがついたURLでアクセスされた時、何もないURLになります。
# index.htmlでのアクセスをサイトTOPのURLに
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L]
エラーページを任意のURLに
URLを指定すれば任意のページを表示できますし、作ってなければまあ、なかったことにも出来ますw
# エラーページを任意のURLに
ErrorDocument 403 http://example.com/
ErrorDocument 404 http://example.com/
携帯とスマフォのページに振り分け
ここからは試してないですけどw便利そうな奴を。それぞれmディレクトリを携帯、sディレクトリをスマフォ、iPad系のアクセスに割り当ててます。まあ最近はレスポンシブデザインとかで統合しちゃうデザインも少なくなさそうですけど…普通はこっちのほうが使いますよね多分。
あとこれに関してはこの書き方が調べたなかだと良さげに見えましたけど、色々書き方はあるみたいです。
# 携帯とスマフォのページに振り分け
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^$ /m/ [R]
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|iPad|Android|BlackBerry)
RewriteRule ^$ /s/ [R]
指定した種類のファイルへのアクセスを禁止
個別ファイルに直接アクセスされるのを防ぎます。「or」を意味する|を挟むことで禁止するファイル名や拡張子を増やせます。
# .htpasswd、.htaccessへのアクセスを禁止
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
# .gif、.jpg、.pngへのアクセスを禁止
<Files ~ "\.(gif|jpg|png)$">
deny from all
</Files>
この記事を書くにあたって
この件に関して@koujienamiさんにヒントを頂き、助けて頂きました。感謝です!
参考にした.htaccessの記事
www.付きドメインとサブドメインの.htaccessリダイレクト at まとめたブログ: WordPress
特定のファイルだけ守る – .htaccessの小技編 – futomi’s CGI Cafe
サイトのマルチデバイス化(.htaccessで振り分け) — [Mu]ムジログ
.htaccessで気になった記事とサイト
サイトやブログの運営でよく使いそうな.htaccessの設定のまとめ | コリス
追記
@ub_pnrさんから.htaccessを簡単に作れるサイトを教えて頂きました。これ全然自分で作る必要ないやん…w すごい。普通にこれ使おうと思いますw
.htaccess ファイルを簡単作成「.htaccess Editor」
まとりさんありがとうございました!☆