.htaccessファイルってなんやねん
筆者も最初はよくわからず、結構影響力の大きいファイルなので、敬遠しておりました。
しかしながら、かなり有能なファイルですよね。
大まかな役割は以下です。
1.リダイレクト
特定のURLへのアクセスを、別のURLにリダイレクトすることができます。
たとえば、古いページが新しいページに移動した場合、.htaccessを使用して自動的に新しいURLに転送することができます。
2.ファイルの非表示
特定のファイルやディレクトリを、ウェブ上で非表示にすることができます。
これは、セキュリティ上の理由や、一時的にアクセスを制限する必要がある場合に使用されます。
3.カスタムエラーページ
Webサイトのエラーページをカスタマイズすることができます。
たとえば、404 Not Foundエラーページを独自のデザインやメッセージで表示することができます。
4.認証とアクセス制御
特定のディレクトリやファイルへのアクセスを制限することができます。
ユーザー名とパスワードを要求して、特定のユーザーだけがそのリソースにアクセスできるようにすることができます。
.htaccesaは、基本はどのサーバーにも入っているんじゃないかってぐらいの定番ファイル。
WordPressなどでも実は裏側で自動的に生成されていたりします。
ただし、誤った設定を行うと、
ウェブサイトが映らなくなったり・・・。
みなさん、まずは自分のサイトであったり、自社サイトでいじる方が良さそうですね。
それでは、どんなふうに記述すれば、htaccessが動作するのか代表的な例を記載します!
.htaccessコード集
お試しになる前に、バックアップは取っておきましょうね。笑
・リダイレクト
# 特定のURLを別のURLにリダイレクトする例
Redirect 301 /old-page.html /new-page.html
・ファイルの非表示
# ファイルのリスト表示を無効にする例
Options -Indexes
・カスタムエラーページ
# 404エラーページを指定する例
ErrorDocument 404 /error-pages/404.html
・認証とアクセス制御
# Basic認証を使用して特定のディレクトリへのアクセスを制限する例
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
・リダイレクトとwwwの非表示
# wwwを非表示にしてドメインをリダイレクトする例
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
MIMEタイプの設定
# MIMEタイプの設定例
AddType application/json .json
AddType application/rss+xml .rss
・キャッシュ制御
# キャッシュ制御の設定例
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 1 hour"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
</IfModule>
・セキュリティ対策
# 特定のファイルのアクセス制限例
<Files "config.php">
Order Allow,Deny
Deny from all
</Files>
# ディレクトリリスティングの無効化例
Options -Indexes
ご参考になれば幸いです!