我有一个名为control
的文件夹,它包含在名为project
的根项目文件夹中,因此localhost上的路径就像control
文件夹一样:http://localhost/project/control
在control
文件夹中,我放置了一个包含内容的.htaccess
文件:
RewriteEngine On
deny from all
在项目根文件夹,即project
文件夹,我有另一个包含主要代码的.htaccess
文件,包括这个404错误重定向代码:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ errordocs/404.php [L]
现在我想要做的是,在打开403
文件夹时遇到control
错误时,它应该将其重写为相同的errordocs/404.php
页面。
答案 0 :(得分:3)
您可以使用ErrorDocument
ErrorDocument 404 errordocs/404.php
ErrorDocument 403 errordocs/404.php
答案 1 :(得分:1)
我能够解决我的问题,我想在这里解释一下,这样对其他人也有帮助,它对我来说很好。
在我的project/control/.htaccess
文件中我输入了代码:
RewriteEngine On
RewriteRule ^$ ../errordocs/404.php [L]
因此,每当用户键入url localhost/project/control/
时,他都会看到来自errordocs文件夹的自定义404.php文件,这是一个目录,因为我的目的是阻止直接访问控制文件夹。我没有使用deny from all
而不是使用上述过程,因此我可以使用403错误的自定义错误页面,它将独立于文档根路径。现在我的项目文件夹可以命名为用户希望的任何名称。
注意:此过程将返回200而不是实际的403错误。要返回403和404,请使用以下相应的代码:
403
RewriteEngine On
RewriteRule ^$ ../errordocs/404.php [L]
RewriteRule ^$ - [R=403,NC,L]
404
RewriteEngine On
RewriteRule ^$ ../errordocs/404.php [L]
RewriteRule ^$ - [R=404,NC,L]