Home
> ブログ
>

ちょっとしたWeb制作でよく使う.htaccessの記述まとめ

ちょっとしたWeb制作でよく使う.htaccessの記述まとめ

  • 2014/05/21
  • WEB

ちょっとしたWeb制作でよく使う.htaccessの記述を、すぐにコピペできるようまとめます.

.htaccessやmod_rewriteに関する詳細はApacheの公式ドキュメントを参照してください.

目次

 

.htaccess自体へのアクセスを拒否

「.ht」から始まるファイルへのアクセスを拒否します.

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

「"」で囲まれた部分に正規表現が使用できるので、任意のファイルへのアクセスを拒否することができます.

 

ファイル一覧を表示させない

index.htmlなどが存在しない場合にディレクトリの内容を表示させないようにします.

Options -Indexes

または次のようにします.

IndexIgnore *

 

特定のホスト/IPからのアクセスを拒否

example.comまたは000.000.000.000からのアクセスを拒否します.

order allow,deny
allow from all
deny from example.com
deny from 000.000.000.000

example.comまたは000.000.000.000からのアクセスのみを許可するには全ての「allow」と「deny」を逆にしてください.

 

BASIC認証をかける

AuthType Basic
AuthUserFile /home/user/www/.htpasswd
AuthGroupFile /dev/null
AuthName "ONLY ADMINISTRATOR."
require valid-user

AuthUserFileディレクティブに.htpasswdファイルのパス、AuthNameディレクティブに認証領域(任意の文字列)を指定します.

 

永久的なリダイレクト

/foo/以下をhttp://example.com/へ永久的な変更としてリダイレクトします(サイトの引っ越しなど).

Redirect permanent /foo/ http://example.com/

 

基本的なリライト

/foo
へのアクセスで
/bar.php
の内容を返します.

RewriteEngine On
RewriteRule ^foo$ bar.php [QSA,L]

 

静的URIで動的URIのコンテンツへアクセスする

/page-123.html
へのアクセスで
/page.php?id=123
の内容を返します.

RewriteEngine On
RewriteRule ^page-([0-9]+).html$ page.php?id=$1 [QSA,L]

RewriteRuleの第1引数には正規表現が使用でき、括弧()で囲んだ部分は後方参照として第2引数へ引き継がれ、$1, $2, $3..のようにして利用することができます.

 

特定のURIでのアクセスに対して404を返す

http://example.com/でのアクセスに対して404を返します.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ - [R=404,L]

 

www無しに統一

http://www.example.com/
へのアクセスを
http://example.com/
へ301リダイレクトします.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

 

index.html(.php)無しに統一

http://example.com/foo/index.html
へのアクセスを
http://example.com/foo/
へ301リダイレクトします.

RewriteEngine On
RewriteCond %{THE_REQUEST} ^(.*)/index\.(html|php)
RewriteRule ^(.*)index\.(html|php)$ http://example.com/$1 [R=301,L]

 

デフォルトのエラーページを変更

ErrorDocument 403 /your_403_error_page.html
ErrorDocument 404 /your_404_error_page.html
ErrorDocument 500 /your_500_error_page.html

 

以上です.

この記事にコメントする