Www.website.com/server-statusにアクセスしようとするとForbiddenエラーが発生します
mod_statusが有効になっている
VirtualHost:
<VirtualHost *:8080>
ServerName website.com
ServerAlias www.website.com
DocumentRoot /var/www/wordpress/
DirectoryIndex index.php
<Directory /var/www/wordpress/>
AllowOverride All
Order Deny,Allow
Allow from all
Options +Indexes
</Directory>
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from .website.com
</Location>
ErrorLog /var/www/wordpress/logs/error.log
CustomLog /var/www/wordpress/logs/access.log combined
</VirtualHost>
許可を.website.comからWebサイトのIPに変更しようとすると、同じ問題が発生します。すべてから許可に変更しようとすると、404が表示されます。
私が行ったもう1つの試みは、127.0.0.1から許可を設定し、サーバー内からlynx経由でアクセスすることでした。同じ問題がかなりありました。
Error.logで受け取ったエラーは次のとおりです。
[error] [client 127.0.0.1] client denied by server configuration: /var/www/wordpress/server-status
さらに、status.confの場所のオーバーライドを無効にして、唯一のサーバーステータス定義がVirtualHostに存在するようにしました。 Apache.confでサーバーステータスの場所を設定しても、同じ結果が得られます。
何が欠けているのですか?
私は解決策を提供していない次のリソースを支援しようとしました:
ありがとう
Allow from行は、Webサイトとは関係ありません。 Allow from
は、指定されたIPアドレス(またはIPに解決されるドメイン名)を持つユーザーがWebサイトにアクセスすることを許可します。
したがって、自宅のIPアドレスが2.2.2.2の場合は、allow from 2.2.2.2
および[〜#〜]ない[〜#〜]allow from yourownwebsite.com
。
403(禁止)を修正する必要がありますが、これを127.0.0.1に変更して、サーバーから直接アクセスしようとしたとお聞きしました。 127.0.0.1をlocalhost
に変更してみましたか?
さて、404に関してです。それはまったく別の問題です。これは「見つかりません」エラーであり、「禁止」エラーではありません。
VirtualHostコンテナーは、デフォルトでは、実際にはmod_statusでの使用を意図していません。それは単に機能しません。 このWebサイト によると、2つのオプションがあります。
VertualHostの構成が正しいかどうかを確認します。次のように、127.0.0.1のVirtualHost構成を作成してみることができます。
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName 127.0.0.1
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options +FollowSymLinks
AllowOverride None
order allow,deny
allow from all
</Directory>
</VirtualHost>
見つけた ここ
WordPressについてはあまり知りませんが、Laravel、Magento、またはApacheで実行される他のWebソフトウェアのようなものであれば、。htaccessルートディレクトリにあるファイル https://codex.wordpress.org/htaccess の簡単な例はここにあります:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
あなたが変えれば
AllowOverrides All
に
AllowOverrides None
ページが表示されますが、.htaccessファイルとhttpd.confの統合、およびApacheのすべてのconfファイルである神のひどい混乱とともに、私はこれに別の方法で参加することを選択しました。
.htaccessファイルを上記の例から次のように変更することを選択します。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /server-status
RewriteRule ".?" "-" [S=1]
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
これにより、RewriteCondがエンドポイントuriに一致し、RewriteRuleがすべてのエンドポイントをindex.phpに書き換える制御ルールをスキップして、wordpressエンジンが動的URLで動作できるようになります。
より簡単な方法があるかもしれませんが、私は自分のhttp.confを次のようにしています:
<VirtualHost *:8080>
ServerName website.com
ServerAlias www.website.com
DocumentRoot /var/www/wordpress/
DirectoryIndex index.php
<Directory /var/www/wordpress/>
AllowOverride All
Order Deny,Allow
Allow from all
Options +Indexes
</Directory>
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 10.0.0.0/24
</Location>
ErrorLog /var/www/wordpress/logs/error.log
CustomLog /var/www/wordpress/logs/access.log combined
</VirtualHost>
一部のフォローアップ読書?