よくあるトラブル

直リンクを防ぐ

.htaccessに次のように書きます。

SetEnvIf Referer "^http://faq\.crz\.jp" ref_ok
SetEnvIf Referer "^$" ref_ok
Order Deny,Allow
Deny from all
Allow from env=ref_ok

faq\.crz\.jpの部分は実際には自分のサイトのドメイン名に書き換えます。 この.htaccessを置いたところとその下のディレクトリにある全てのファイルの直リンクを防ぎます。

特定の種類のファイルだけに適用するには次のようにします。

SetEnvIf Referer "^http://faq\.crz\.jp" ref_ok
SetEnvIf Referer "^$" ref_ok
<FilesMatch "\.(gif|jpe?g|png)$">
Order Deny,Allow
Deny from all
Allow from env=ref_ok
</FilesMatch>

この例では拡張子が.gif/.jpeg/.jpg/.pngのファイルのみ直リンクを防ぎます。

以上の方法ではリファラが自サイトまたは空のときに読み出しを許可します。 つまり、他サイトから直リンクがあった場合、リファラが他サイトなので読めないという仕組みです。 なお、空のリファラを許可するのは、ノートンを入れているパソコンがリファラを遮断していることがあるためです。

mod_alias

Alias

使えないようです。

Redirect

例えば http://faq.crz.jp/aaa/~http://faq.crz.jp/bbb/~ にリダイレクトする場合は次のようにします。

Redirect /aaa http://faq.crz.jp/bbb

mod_rewrite

ディレクトリのリダイレクト

例えば http://faq.crz.jp/aaa/~http://faq.crz.jp/bbb/~ にリダイレクトする場合は次のようにします。

RewriteEngine on
RewriteRule ^aaa/(.*) /bbb/$1 [L,R=301]

aaa の前に / を書かないように気をつけます。

1つのドメインにリダイレクト

次のようにすると、http://faq.crz.jp/http://www.example.com/にアクセスした場合、http://example.com/にリダイレクトされます。

RewriteEngine on
RewriteCond %{HTTP_HOST} faq\.crz\.jp [NC,OR]
RewriteCond %{HTTP_HOST} www\.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [L,R=301]

動的ページを静的ページに見せる

例えば http://faq.crz.jp/board.php?id=a3http://faq.crz.jp/bbs/a3/ に見せるには次のようにします。

RewriteEngine on
RewriteRule ^bbs/([0-9A-Za-z]+) /board.php?id=$1 [L]

bbs の前に / を書かないようにします。

なお、bbsboardの部分は違う文字列になるようにします。

独自エラーページ

独自エラーページの設定

.htaccessに次のように書きます。

ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 500 /error/500.html

例えば「Not Found The requested URL *** was not found on this server.」の場合、このサイトならhttp://faq.crz.jp/error/404.htmlが代わりに表示されることになります。

独自エラーページが表示されない

Internet Explorerでは独自エラーページが表示されないことがあります。 これはIEの仕様で、エラーページが小さい場合はIE自身がエラーメッセージを表示するからです。

必ず表示させるには、404.html等のエラードキュメントのサイズを512バイト以上にします。

BASIC認証(基本認証)

alt FirefoxでのBASIC認証 BASIC認証とは、特定のページを閲覧しようとするとき右のようなものを表示させ、ユーザ名とパスワードを知っている人だけがアクセスできるようにするものです(右はFirefox 3.0の例)。

.htaccessに次のように書きます。 この.htaccessを置いたところとその下のディレクトリの全てのページで認証が有効になります。

AuthType Basic
AuthName "Secret Page"
AuthUserFile /home/httpd/n000000000/etc/.htpasswd
require valid-user

alt FirefoxでのBASIC認証

AuthNameには認証の前文に表示したい文字列を書きます。 右図の赤で囲んだ部分です。 日本語は文字化けする危険があるので、半角の英数字・記号にしておくのが無難です。

AuthUserFileには.htpasswdの場所をフルパスで指定します。

.htpasswdはユーザ名とパスワードを書いておくファイルです。 ブラウザは直接読まないので、public_htmlの下以外に置くのがよいでしょう。 中身は次のようになります。

john:y4UbxN2LMHaoc
jane:cHx4Wv462IsNg

左側がユーザ名、右側がそれぞれのパスワードを暗号化したものです。 暗号化にはhtpasswdというコマンドも使えますが、http://www.nifty.com/biz/support/manual/web/14/01.htm 等のサービスが便利です。

mod_headers

使えないようです。

mod_layout

使えないようです。

.htaccess (最終更新日時 2009-12-21 21:29:42 更新者 admin)