101

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

4

7 に答える 7

99

.htaccess への変更に再起動は必要ありません。他に何か問題があります。

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

RewriteEngine on

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

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

RewriteLog "logs/rewritelog"

RewriteLogLevel 7

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

于 2008-09-27T02:25:22.587 に答える
52

いいえ:

Apache では、Web ツリー内に配置された特別なファイルを使用して構成を分散管理できます。特別なファイルは通常呼び出されますが、 AccessFileName.htaccessディレクティブで任意の名前を指定できます... .htaccess ファイルはすべての要求で読み取られるため、これらのファイルで行われた変更はすぐに有効になります...

于 2008-09-27T00:12:29.397 に答える
18

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

于 2008-09-27T00:31:15.170 に答える
4

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

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

于 2008-09-27T00:28:50.323 に答える
2

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

于 2011-07-01T17:54:10.547 に答える
0

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

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

于 2008-09-27T00:27:55.333 に答える