我已阻止通過虛擬主機使用 IP 直接訪問我的站點。但是,我無法使用定義為的 403 錯誤模板error.php
由于error.php位于/var/www/html/error.php,所以它會自動被阻止并出錯Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

下面是我的000-default.conf
ErrorDocument 400 /error.php
ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php
<VirtualHost *:80>
ServerName subdomain.example.com
ServerAlias www.subdomain.example.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName 1.1.1.1
ServerAlias 2001:2001:2001:2001:2001:2001:2001:2001
DocumentRoot /var/www/html
<Location />
Require all denied
</Location>
</VirtualHost>
所以后來我嘗試使用 .htaccess 來實作相同的目標(當然,在從 000-default.conf 中洗掉塊之后),我遇到了同樣的錯誤。無法選擇自定義 403 模板,因為路徑似乎已被阻止。以下是 .htaccess 內容放置在/var/www/html/
RewriteCond %{HTTP_HOST} ^1\.1\.1\.1$
RewriteRule .* - [F,L]
#RewriteCond %{HTTP_HOST} !^2001\:2001\:2001\:2001\:2001\:2001$
運行 Apache/2.4.38
uj5u.com熱心網友回復:
設法整理出來。分享它是否可以幫助面臨類似問題的人。
<VirtualHost *:80>
ServerName 1.1.1.1
ServerAlias 2001:2001:2001:2001:2001:2001:2001:2001
DocumentRoot /var/www/html
<Directory /var/www/html>
Order deny,allow
Deny from all
Options FollowSymLinks
<Files error.php>
Order allow,deny
Allow from all
</Files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/495770.html
