.htaccessの書き換えルールを有効にするために、apacheを再起動する必要がありますか?
-
02-07-2019 - |
質問
.htaccessファイルを本番サーバーにプッシュしましたが、機能しません。再起動が次のステップになりますか、それとも何か他のものを確認する必要があります。
解決
.htaccessの変更には、再起動は必要ありません。他の何かが間違っています。
.htaccessにステートメントが含まれていることを確認してください
RewriteEngine on
これは、httpd.confにも存在する場合でも必要です。また、.htaccessがhttpdプロセスによって読み取り可能であることを確認します。
error_logを確認します。使用されている場合、.htaccessのエラーを 通知します。
.htaccessに意図的な構文エラーを入れることは、ファイルが使用されていることを確認するための良いチェックです。同じディレクトリ内のすべてのページで500エラーが発生するはずです。
最後に、httpd.confで次のようなコマンドを使用して書き換えログを有効にできます。
RewriteLog" logs / rewritelog"
RewriteLogLevel 7
こうして生成されたログファイルは、どの書き換えルールが一致し、どのように処理されたかの詳細を提供します。
他のヒント
いいえ:
Apacheを使用すると、Webツリー内に配置された特別なファイルを介して設定を分散管理できます。特殊ファイルは通常
.htaccess
と呼ばれますが、 AccessFileName ディレクティブ... .htaccessファイルはリクエストごとに読み取られるため、これらのファイルに加えられた変更はすぐに有効になります...
Apacheドキュメントから: 最も一般的な問題は、AllowOverrideが設定ディレクティブが尊重されるように設定されていないことです。問題のファイルスコープに対してAllowOverride Noneが有効になっていないことを確認してください。これの良いテストは、ごみを.htaccessファイルに入れてリロードすることです。サーバーエラーが生成されない場合、ほぼ確実にAllowOverride Noneが有効になっています。
mod_rewriteモジュールをApacheに追加していない 場合のみ。
Apache" .conf"を変更した場合のみ、Apacheを再起動する必要があります。ファイル。
同じ問題があり、AllowOverrideに関するPiedPiperの投稿が最も役に立ちました。 httpd.confファイルで" AllowOverride"を確認してください。そして、すべてに設定されていることを確認してください。
.htaccessの場合、動作しない場合は再起動は必要ありません。考えられる理由は次のとおりです。
-
AllowOverride httpd.conf内で設定できるユーザー、またはサーバー管理者に連絡する必要のあるユーザーは設定できません。
-
.htaccessのファイル名を確認します。htaccess.txtではなく.htaccessである必要があります。 こちら を作成する方法のガイド。
-
Options -Indexes
またはdeny all
のような単純なディレクティブを使用して、機能するかどうかを確認してください。 -
リダイレクトまたは以前のリダイレクトがキャッシュされている場合に同様のルールがある場合は、ブラウザのキャッシュを毎回クリアします。
.htaccessには何が含まれていますか? RewriteRules? mod_rewriteがインストールされ、有効になっていることを確認します。
その他のものは?そのディレクトリでAllowOverrideを「all」に設定してみてください。