すてきな気分〜ナイスフィーリングブログ〜

書いておいた方がいい.htaccess

.htaccessの設定を色々調べて、これは今後も書いて置いておいた方がいいかも、と思ったものをメモ。
設定しても効かない場合はサーバーの仕様なので、サーバーごとに別のやり方があると思います。

・.htaccess保護
.htaccess自身にアクセスさせない設定。

<Files ~ “^\.ht”>
deny from all
</Files>

・ディレクトリ内一覧の非表示
セキュリティ面で構造を隠すのは重要かと。

Options -Indexes

・indexファイルの優先順位
あんまりないけど、ディレクトリ内にindexファイルが複数あるとき

DirectoryIndex index.html index.htm index.php index.cgi index.shtml

ちなみにさくらのサーバーの場合、上記のディレクトリ内一覧の非表示で「Options」は使えないので、

DirectoryIndex index.html index.htm index.php index.cgi index.shtml .ht

と書くと、一覧非表示と優先順位がひとまとめにできる。
これは、列挙されている拡張子がどれも存在しなかった場合、「.ht」と追記しておくと403を返すので、結果ディレクトリ内は見えないという仕様。

・URL wwwあり・index.htmlなし統一
検索エンジンは、wwwあり・なしURLは別物と見なすので、301リダイレクトさせる。
ついでにindex.htmlなしURLへ統一しておくと、アクセス解析の時分散しなくていいかも。(※リンクにindex.htmlを指定している場合)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^sample\.jp [NC]
RewriteRule ^(.*) http://サイトのURL/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://サイトのURL/$1 [R=301,L]

・エラーページ404
存在しないURLへアクセスがあったとき返すページを設定。

ErrorDocument 404 /error.html

・phpをhtmlで動かす

AddType application/x-httpd-php .php .html

が、コレ、さくらでは動かず。。。
サーバーからphp-cgiをバイナリで落として、また上げて・・・とか諸々手間をかけてから下記のように書く。

Action myphp-script /php.cgi 
AddHandler myphp-script .php .html

ついでにrobots.txt。

・クロールを全拒否

User-Agent: *
Disallow: /

・クロールを許可

User-agent: *
Allow: /

・検索エンジンにXMLサイトマップの存在を通知

Sitemap: http://サイトのURL/sitemap.xml

・モバイル用クロール

User-agent: Googlebot-Mobile
Disallow:
User-agent: *
Disallow: /

とまぁ、色々ありますけど、WordPressだとやってくれるのもあるので、純粋にHTMLで制作したサイトにはあった方がいいかな、と思います。
しかしサーバーによってできたりできなかったりで、調べる手間は発生しますかねぇ。

トラックバック

このエントリーのトラックバックURL:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です