備忘録兼ねてよく使いがちな設定例をいくつかサンプルとして挙げておきます。
MIMEタイプを付ける
AddType application/text/plain ai
他にも .3gpファイルなど色々使い道はあります。
CGIを実行可能とする
Options ExecCGI Includes
どうしてもHTMLファイルなど置いてあるところでCGIを実行したい場合に使えます。
但し、サーバ上でCGI実行を拒否している場合はこの設定を行ってもムダなのでご注意下さい。
SSIを有効にする
AddType text/html .shtml
AddHandler server-parsed .shtml
今更SSI・・という気もしますがご参考まで。
ディレクトリアクセス時のデフォルト表示ページの優先順位設定
DirectoryIndex index.html index.htm index.php
通常はPHPファイルにアクセスさせるけど、メンテなどで一時的に htmlファイルにアクセスさせたい場合 ⇒ index.php の他に index.html ファイルを作る
ページリニューアル中、どうしても本番と同じディレクトリ上で新しいページを作らないといけないハメになった場合 ⇒ index.html の他に index.htm を作る
などなど・・
Rewrite(*.php?a=bなどを、ディレクトリ形式などに置き換えてSEO上有利にする)
RewriteEngine on
RewriteRule ^abc/(.*)/(.*)/(.*)$ /abc/data.php?e=$1&i=$2&f=$3
RewriteCond %{HTTP_HOST} ^(en\-pc\.jp)(:80)? [NC]
RewriteRule ^(.*)$ http://www.en-pc.jp/$1 [R=301,L]
RewriteRule ^([0-9A-Za-z#$\(\)\=\-\^\|\[\{\@\`\}\]\:\\;\+_\.\>\<\,]+)\.html$ page.php?pagename=$1&%{QUERY_STRING} [L]
例1:http://en-pc.jp/ でアクセスがあった場合、 http://www.en-pc.jp/にアクセスしなおしてもらう。
例2:/abc/1/2/3/ とアクセスした場合に、 /abc.php?e=1&i=2&f=3とプログラムに渡すようにする
例3:/abc.html とアクセスした場合に、 /page.php?pagename=abc とプログラムに渡すようにする
リダイレクト(サイト移転)
Redirect 301 /old/link.html http://www.en-pc.jp/newlink.html
Redirect permanent /contact.html http://www.en-pc.jp/form/
移転前ページにアクセスがあった場合に、移転後ページに自動でアクセスしてもらう方法。
SEO対策上とっても大切。
PHPプログラム上で動的に変更できない設定を行う例
php_value mbstring.encoding_translation Off
ini_set()で設定できないものがいくつかありますが、その中には .htaccess で設定可能な場合があります。その場合この方法が使えます。
上の例は、php で自動的に入力データの文字コード変更を行っている場合に、それを無効とするやり方です。