【发布时间】:2025-11-29 18:45:02
【问题描述】:
我正在尝试为我的网站设置一个未找到的自定义 404 错误页面。我已经看过很多教程并阅读了这里的文档https://httpd.apache.org/docs/2.4/custom-error.html。
当我向我的域提供无效 url 时,这是我得到的默认 404 页面。
Not Found
The requested URL /notreal was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
这是我的 httpd.conf 文件中允许覆盖的内容:
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/opt/bitnami/apache2/htdocs"
<Directory "/opt/bitnami/apache2/htdocs">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
这是我的 .htaccess 文件:
Options -Indexes
ErrorDocument 404 /error/404.html
我在 /opt/bitnami/apache2/htdocs 和 /opt/bitnami/apache2/htdocs/error 中有一个 .htaccess 文件,该文件具有我想要使用自定义 JS 和 CSS 输出的自定义 404.html 页面。
编辑:
Bitnami 配置文件:
# Default Virtual Host configuration.
<IfVersion < 2.3 >
NameVirtualHost *:80
NameVirtualHost *:443
</IfVersion>
<VirtualHost _default_:80>
DocumentRoot "/opt/bitnami/apache2/htdocs"
<Directory "/opt/bitnami/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3 >
Require all granted
</IfVersion>
</Directory>
# Error Documents
ErrorDocument 503 /503.html
ErrorDocument 404 /error/404.html
# Bitnami applications installed with a prefix URL (default)
Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf"
</VirtualHost>
# Default SSL Virtual Host configuration.
<IfModule !ssl_module>
LoadModule ssl_module modules/mod_ssl.so
</IfModule>
Listen 443
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !EDH !RC4"
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/opt/bitnami/apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
<VirtualHost _default_:443>
DocumentRoot "/opt/bitnami/apache2/htdocs"
SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key"
<Directory "/opt/bitnami/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3 >
Require all granted
</IfVersion>
</Directory>
# Error Documents
ErrorDocument 503 /503.html
ErrorDocument 404 /error/404.html
# Bitnami applications installed with a prefix URL (default)
Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf"
</VirtualHost>
# Bitnami applications that uses virtual host configuration
Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf"
【问题讨论】:
-
Bitnami 工程师在这里。您可以编辑我们在 /opt/bitnami/apache2/conf/bitnami/bitnami.conf 文件中创建的默认虚拟主机,而不是创建新的 Directory 块并覆盖它吗?您可以在那里找到其他“ErrorDocument”指令。请注意,之后您需要重新启动 Apache
sudo /opt/bitnami/ctlscript.sh restart apache -
我按照你的建议做了,我将 ErrorDocument 404 /error/404.html 添加到 bitnami.conf 中,端口 80 和端口 443 仍然没有重定向到页面。我还从我的服务器中删除了 htaccess 文件并重新尝试。仍然没有运气。我编辑了问题以演示我的整个 bitnami conf 文件。