我在使 ErrorDocument 工作时遇到了问题。我已经尝试了大多数表单和帖子上的大部分建议。我唯一知道我有而其他人没有的是 certbot 添加的 RewriteCond。
我以前也这样做过,但那是在旧版本的 ubuntu 上,并且是一个自签名网站。
操作系统:Ubuntu 22.04
当前的配置文件
ServerAdmin webmaster@localhost
ServerName leofriclegends.com
ServerAlias www.LeofricLegends.com www.leofriclegends.com LeofricLegends.com *.LeofricLegends.com *.leofriclegends.com 92.27.77.101
DocumentRoot /var/www/leofriclegends.com/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ErrorDocument 405 /404.html
ErrorDocument 500 /WebPageError.html
ErrorDocument 502 /WebPageError.html
ErrorDocument 503 /WebPageError.html
ErrorDocument 504 /WebPageError.html
<Files "404.html">
<If "-z %{ENV:REDIRECT_STATUS}">
RedirectMatch 404 ^/404.html$
</If>
</Files>
<Files "WebPageError.html">
<If "-z %{ENV:REDIRECT_STATUS}">
RedirectMatch 404 ^/WebPageError.html$
</If>
</Files>
RewriteEngine on
RewriteCond %{SERVER_NAME} =*.LeofricLegends.com [OR]
RewriteCond %{SERVER_NAME} =leofriclegends.com [OR]
RewriteCond %{SERVER_NAME} =www.LeofricLegends.com [OR]
RewriteCond %{SERVER_NAME} =LeofricLegends.com [OR]
RewriteCond %{SERVER_NAME} =www.leofriclegends.com [OR]
RewriteCond %{SERVER_NAME} =92.27.77.101 [OR]
RewriteCond %{SERVER_NAME} =*.leofriclegends.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
apachectl-S:
VirtualHost configuration:
*:443 leofriclegends.com (/etc/apache2/sites-enabled/leofriclegends.com-le-ssl.conf:2)
*:80 is a NameVirtualHost
default server leofriclegendslimitedserver.home (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost leofriclegendslimitedserver.home (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost industrialdimensions.co.uk (/etc/apache2/sites-enabled/industrialdimensions.co.uk.conf:1)
alias www.industrialdimensions.co.uk
alias www.IndustrialDimensions.co.uk
alias IndustrialDimensions.co.uk
wild alias *.IndustrialDimensions.co.uk
wild alias *.industrialdimensions.co.uk
port 80 namevhost leofriclegends.com (/etc/apache2/sites-enabled/leofriclegends.com.conf:1)
alias www.LeofricLegends.com
alias www.leofriclegends.com
alias LeofricLegends.com
alias 92.27.77.101
wild alias *.LeofricLegends.com
wild alias *.leofriclegends.com
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
我看过的网站/教程:
- https://www.digitalocean.com/community/tutorials/how-to-configure-apache-to-use-custom-error-pages-on-ubuntu-14-04
- https://stackoverflow.com/questions/22116349/ubuntu-13-10-apache2-custom-404-not-with-htaccess#_=_ https://httpd.apache.org/docs/2.2/custom-error.html
- https://www.liquidweb.com/kb/configure-apache-virtual-hosts-ubuntu-18-04/ https://httpd.apache.org/docs/2.4/urlmapping.html
- Apache:重定向 404 和 ErrorDocument 404 区别
我确信我漏掉了一些明显的东西,或者由于 certbot 我需要额外的步骤。所以任何帮助都会受到欢迎。
谢谢
答案1
在这个问题上花了一个多星期后,我发现问题出在使用 certbot 之后它创建了另一个 .conf 文件。
此文件还需要添加错误代码才能使重定向正常工作。因此,如果其他人遇到此问题,请在您的 sites-enabled/YOUSITESNAME.COM-le-ssl.conf 中查找该文件,并在其中添加错误处理。