Apache2を実行している新しくインストールされたUbuntuサーバー上の.htaccess
ファイルに問題があります。
WordPressファイルが置かれているディレクトリ内の.htaccessファイルは、サーバーがページを読み込むときに考慮されません。 Apache2.confファイルにはAllowOverride
ステートメントはありませんが、デフォルトはAll
であり、これを含めても何も変わりません。
ローカル.htaccess
ファイルの内容をセクションに含めてみました。私もこれを試しました:
<Directory /var/www/mydomain.com/html>
AllowOverride All
</Directory>
また、/ etc/Apache2/sites-available/default(デフォルトではすべてAllowOverride
に設定されている)のNone
のすべてのインスタンスをAll
に変更しようとしました。
しかし、私には運がなかった。
これを解決する方法がわからない。
Apacheが使用しているのと同じファイルをレビューしているApache構成ファイルですか?
Apache2ctl -V
を実行し、SERVER_CONFIG_FILE
エントリが期待どおりであること、確認しているVirtualHosts宣言を参照していることを確認します。 (新規インストールの典型的な問題ではなく、他の誰かの設定を継承した場合の可能性)
.htaccess
?以外を指定する AccessFileName ディレクティブがあります
その場合、それに応じて.htaccess
ファイルの名前を変更するか、ディレクティブをコメント化してみてください(既存のオーバーライドファイルが依存していないことを確認できる場合)。
AllowOverride 許可されるディレクティブを制限するディレクティブはありますか?
このディレクティブの問題をすでに探して解決しているようですが、Apacheを再起動してAccessFilenameまたはAllowOverrideディレクティブに変更を適用する必要があります。
オーバーライドファイルのディレクティブは、インストールされているモジュールでサポートされていますか?
これは、オーバーライドディレクティブがIfModule
条件でラップされている場合、特に見落としがちです。
テストする最も簡単な方法は、他のオーバーライドディレクティブの前にコアディレクティブをオーバーライドファイルに追加することです。たとえば、.htaccess
ファイルの先頭に以下を追加します。
Order allow,deny
deny from all
オーバーライドファイルがApacheによって解析されると、Apacheはディレクトリに対するすべてのリクエストを拒否します-オーバーライドファイルは解析されているが他のディレクティブは無視されていることをテストで確認した場合、 インストールされているモジュールをチェック 必要なモジュールを有効にします-例a2enmod rewrite
(おそらくWordPressインストールが使用しようとしているモジュールです。Ubuntuの最近のリリースではデフォルトで有効になっていません)