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


回答:


93

.htaccessを変更した場合、再起動は必要ありません。他の何かが間違っています。

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

RewriteEngine on

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

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

RewriteLog "ログ/ rewritelog"

RewriteLogLevel 7

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


3
これは少し時代遅れです。私は同様の問題に遭遇し、特定のユースケースのために私の書き換えをデバッグしたいと思いました。私はこの方法を試しましたが、少しイライラして掘り下げた後、何が問題なのかがわかりました。これは古いバージョンのapache用です。apache2.4の場合>上記のRewriteLog&LogLevelをに置き換えますLogLevel alert rewrite:trace7。後にApacheを再起動し、あなたが助けerror.logファイルホープのトレースが表示されるはずです。 http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
キャスパーウィルクス

52

いいえ

Apacheは、Webツリー内に配置された特別なファイルを介して構成の分散管理を可能にします。特殊ファイルは通常と呼ば.htaccessれますが、AccessFileNameディレクティブで任意の名前を指定できます... .htaccessファイルはすべてのリクエストで読み取られるため、これらのファイルに加えられた変更はすぐに有効になります...


ユーザーがサイト対応ファイルの「ユーザーを要求する」に追加した場合、再起動が必要であることが経験的にわかりました。優雅な人がそれを行います。
ロス

18

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


1
Apacheへのリンクの削除-AllowOverride:httpd.apache.org/docs/2.2/mod/core.html#AllowOverride
scunliffe

2
この行「<directory /> </ directory>」を.htaccessに追加して、ログにエラーを生成します。「ここではディレクトリは許可されていません」と表示され、ファイルを読み取っていることがわかります。
Mnebuerquo

3

Apacheにmod_rewriteモジュールを追加していない場合のみ。

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



2

.htaccessが機能していない場合、再起動は不要です。

  • AllowOverride設定できません。httpd.conf内で設定できるユーザーや、サーバー管理者に連絡する必要がある場合があります。

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

  • 単純なディレクティブを使用して、機能しているOptions -Indexesdeny allどうかを確認してください。

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


0

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.