web-dev-qa-db-ja.com

.htaccessの書き換えルールを有効にするために、Apacheを再起動する必要がありますか?

.htaccessファイルを本番サーバーにプッシュしましたが、機能しません。再起動が次のステップになりますか、それとも何かを確認する必要がありますか。

92

.htaccessの変更には再起動が必要ですnotが必要です。他の何かが間違っています。

.htaccessにステートメントが含まれていることを確認してください

RewriteEngine on

これはhttpd.confにも存在する場合でも必要です。また、.htaccessがhttpdプロセスによって読み取り可能であることを確認します。
error_logを確認してください。使用されている.htaccessifのエラーが表示されます。 .htaccessに意図的な構文エラーを入れることは、ファイルが使用されていることを確認するための良いチェックです。同じディレクトリのどのページでも500エラーが発生するはずです。

最後に、httpd.confで次のようなコマンドを使用して書き換えログを有効にできます。

RewriteLog "logs/rewritelog"

RewriteLogLevel 7

このように生成されたログファイルは、どの書き換えルールが一致し、どのように処理されたかの詳細を示します。

87
TomG

いいえ

Apacheでは、Webツリー内に配置された特別なファイルを使用して、構成を分散管理できます。特別なファイルは通常.htaccessと呼ばれますが、 AccessFileName ディレクティブで任意の名前を指定できます... ...

51
Milen A. Radev

Apacheドキュメントから:最も一般的な問題は、AllowOverrideが設定ディレクティブが尊重されるように設定されていないことです。問題のファイルスコープに対してAllowOverride Noneが有効になっていないことを確認してください。これの良いテストは、ごみを.htaccessファイルに入れてリロードすることです。サーバーエラーが生成されない場合、ほぼ確実にAllowOverride Noneが有効になっています。

18
PiedPiper

notを持っている場合のみ、mod_rewriteモジュールをApacheに追加します。

Apache ".conf"ファイルを変更した場合にのみ、Apacheを再起動する必要があります。

3
ethyreal

.htaccessの場合、動作しない場合には再起動は必要ありません。考えられる理由は次のとおりです。

  • AllowOverride httpd.conf内で設定できるユーザー、またはサーバー管理者に連絡する必要のあるユーザーは設定できません。

  • .htaccessのファイル名を確認してください。htaccess.txtではなく.htaccessである必要があります。作成方法については、 here を参照してください。

  • Options -Indexesまたはdeny all種類の単純なディレクティブを使用して、機能しているかどうかを確認してください。

  • リダイレクトのルールがある場合、または以前のリダイレクトがキャッシュされている場合に同様のルールがある場合は、ブラウザのキャッシュを毎回クリアします。

2
Abhishek Gurjar

私は同じ問題を抱えており、AllowOverrideに関するPiedPiperの投稿が最も役に立ちました。 httpd.confファイルで「AllowOverride」を確認し、すべてに設定されていることを確認します。

2
user825302

.htaccessには何が含まれていますか? RewriteRules? mod_rewriteがインストールされ、有効になっていることを確認してください。

他のもの?そのディレクトリでAllowOverrideを「all」に設定してみてください。

0
ceejayoz