web-dev-qa-db-ja.com

ErrorDocumentが機能しない

私はこの問題を解決しようとしていますが、実稼働サーバーと同じセットアップの仮想マシンがあります。 0-default.confのErrorDocument行はVMで機能しますが、実稼働サーバーでは機能しません。

一見異なる2つの点は、a)運用サーバーにはセキュリティ証明書がありますとb)運用サーバー上の000-default.confにはmod_rewriteが使用されていないときに有効になっている、それは違いです。

何が起こるかを確認するためにmod_rewriteを無効にしましたが、何も変わっていません。すべての文書

デフォルトのフォルダーセット(/ var/www/html)があり、000-default.confに加えた変更は次のとおりです。

ErrorDocument 404 /error_pages/404.html
ErrorDocument 500 /error_pages/50x.html
ErrorDocument 502 /error_pages/50x.html
ErrorDocument 503 /error_pages/50x.html
ErrorDocument 504 /error_pages/50x.html

<Files "404.html">
    <If "-z %{ENV:REDIRECT_STATUS}">
        RedirectMatch 404 ^/404.html$
    </If>
</Files>

<Files "50x.html">
    <If "-z %{ENV:REDIRECT_STATUS}">
        RedirectMatch 404 ^/50x.html$
    </If>
</Files>

mod書き換え部分:

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.website.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

これが原因かどうかもわかりませんが、私の証明書はwwwに対してのみ有効であり、裸のURLではありません。

ここからどこに進むべきかわからない場合、サーバーはデフォルトのApacheエラーページを表示します。

2
Chris

W3dkの質問のおかげで、ページリダイレクトが機能しなかった理由を理解することができました。

私はセキュリティ証明書に暗号化しようとしましたが、(またはおそらく私の知識不足のため)、SSL証明書をロードする行(000-default-le-ssl.conf)を含む新しい.confファイルを作成しました元のdefault.confの先例。

この新しい.confファイルを変更すると、すべてが正常に機能しました。

1
Chris