.htaccessとは

.htaccessとはApacheサーバーの挙動を変えるための設定ファイルである. 名前の先頭にドット“.”がついていることから分かる通り,UNIX/Linux系のOSでは隠しファイルとして扱われるので,htaccessという名前で編集用ファイルを保存して置くか,もしくはファイルマネージャーで隠しファイルを表示するよう設定しておくと良い(かもしれない).

役割

先に.htaccessとはApacheサーバーの挙動を変えるための設定ファイルと書いた. 具体的にはリダイレクト処理gzip圧縮の有効化,またキャッシュの設定を記述できる設定ファイルである. .htaccessの中身は例えば次のようなものである.
RewriteEngine on

RewriteRule ^index\.(html|php)$ / [L,R=301]
RewriteRule ^(.*)/index\.(html|php)$ /$1/ [L,R=301]

上の例ではアドレスの末尾にindex.htmlindex.phpをつけないよう,リダイレクト(HTTP_301)するよう設定している記述例である. 例えば, "http://storange.jp/" と "http://storange.jp/index.html" は同じページを表示するが,アクセス解析を行っている場合はURLが異なるため,違うページとして認識されてしまう. これはSEOにも言えることで,末尾のindex.htmlは取り除いた形で統一した方が好ましい. そこで.htaccessで設定することにより,"http://storange.jp/index.html" でアクセスされた際, "http://storange.jp/" へとリダイレクト(HTTP_301)するよう設定できるのだ. .htaccessを使うことで,このようなリダイレクト処理からWebサイトのパフォーマンスを向上させる上で重要なgzip圧縮やキャッシュの有効化などの設定も行える. 詳細は今後の記録として記して行く予定.

配置場所

基本的にはトップページ,すなわちindex.htmlが置いてあるディレクトリに置く.
ルートフォルダ内
  • .htaccess
  • index.html
  • style.css
私はmacOSを主に利用しているため,ローカル環境(macOS内)ではhtaccessという名前で保存して編集をし,FTPでサーバーへアップロードした後,サーバー側のファイル名を.htaccessへと変更するようにしている.

ディレクトリ毎に設定可能

.htaccessファイルはディレクトリ毎に設定を分けることもできる. つまり,次のようにサブディレクトリ内にも配置できる.
ルートフォルダ内
  • .htaccess ← グローバルに適用される
  • index.html
  • サブディレクトリ
    • .htaccess ← このサブディレクトリ内にのみ適用される
    • index.html
    • style.css
  • style.css
サブディレクトリ内にだけ.htaccessを配置すると,そのサブディレクトリ内でしか設定が適用されなくなる. ルートフォルダ内に.htaccessをひとつ置けば,ルートフォルダやその中のサブディレクトリ内であっても,その設定は適用される. もし,ルートフォルダに.htaccessがあり,更にサブディレクトリ内にも配置した場合,サブフォルダ内の設定が優先的に適用される. 以上のように,フォルダ(ディレクトリ)毎に制御(処理の設定)を行うことが出来る.
4228675265039368361 http://www.storange.jp/2017/11/htaccess.html http://www.storange.jp/2017/11/htaccess.html .htaccessとは 2017-11-14T22:20:00+09:00 http://www.storange.jp/2017/11/htaccess.html Hideyuki Tabata 200 200 72 72