|
htaccess動かない時(エラーになる、無視される)
htaccessが無視されたり、Internal Server Errorとなるときは、以下を確認してください。 原因のすべてではありませんが、多くの原因が下記となります。
1.htaccessファイル名に間違い
htaccessファイル名に間違いはありませんか?
- 「.htaccess」となっていない。
→ 単純にファイル名が間違っている → 前方や後方にスペースが入っている → ファイル名の一部または全部に全角が含まれている
- BASIC認証の場合、「.htpasswd」となっていない。
→ 単純にファイル名が間違っている → 前方や後方にスペースが入っている → ファイル名の一部または全部に全角が含まれている
2.文字コードの間違い(改行コードの間違い)
htaccessのアップロードの転送方法を間違っていませんか(改行コードが違っていませんか)?
3.構文の間違い
htaccessの構文は間違っていませんか?
- 単純に1文字間違えている
→ 「Files」が「File」になっているなど、単純な間違いも多くありますので、もう一度確認をしてください。
- allowとdenyを逆にしている
「order」を逆にすると、想定と逆の動きになります。
- BASIC認証時は「.htpasswd」の置いているパス指定が間違っている
BASIC認証を使用している場合は、「AuthUserFile」に指定した個所(パス)に「.htpasswd」があるか確認してください。
4.パーミッションの間違い
htaccessのアップロード時にパーミッションを確認しましたか?
- 「.htaccess」や「.htpasswd」のパーミッションが604になっていない(プロバイダやレンタルサーバーによっては644が推奨されている)
→ 「htaccess留意事項」を再度ご確認ください。
5.htaccessの配置場所(パス)間違い
htaccessをアップロードしたディレクトリは間違っていませんか?
6.正規表現のエスケープ漏れ
正規表現の使用個所でエスケープはされていますか?
- 「Files」、「RedirectMatch」、「SetEnvIf」などを利用している場合、正規表現が利用されます。正規表現では、一部の文字をエスケープする必要があります。
→ 「htaccess留意事項」を再度ご確認ください。
7.もともとhtaccessが利用できない
- サーバー管理者にhtaccessが利用可能か確認してください。
→ ホスティングやレンタルサーバーの場合、htaccessが使用禁止となっている場合があります。 → htaccessの一部機能(命令)が利用できないように設定されていることもあります。 → サーバー管理者の場合、http.confでhtaccessが利用可能となっていることを確認してください。
- サーバー管理者の場合は、http.confの「AllowOverride」が有効になっているか確認してください。
詳細は、Apacheのマニュアルサイト(http://httpd.apache.org/docs/2.2/ja/mod/core.html#allowoverride)を確認ください。
|