2017-05-03 56 views
1

如何为Web服务器上存在的特定页面发送404页面错误? (使用htaccess)。如何使用htaccess拒绝对特定页面的访问

例如,我有一个config.php文件,当我到localhost/config.php时,它只是显示一个空白的白页而没有任何内容。我希望它看起来像一个404页面,就像页面不存在一样。

我该怎么做?

谢谢!

回答

1

如果你特别想返回404未找到,那么你可以使用mod_rewrite,靠近你.htaccess文件的顶部:

RewriteEngine On 
RewriteRule ^config\.php$ - [R=404,L] 

然而,“拒绝”的访问,并发送403禁止的,那么这将是优选使用在Apache 2.4以下的(核心)指令:

<Files "config.php"> 
    Require all denied 
</Files> 

可以实现与mod_rewrite的相同的通过使用Fforbidden)标志。例如:

RewriteRule ^config\.php$ - [F] 

(该L标志没有在这种情况下必须的,因为它暗示)

+0

嗨@ w3dk,太感谢你了!我使用了'RewriteRule^config \ .php $ - [R = 404,L]',它适用于localhost/config.php - 显示404页面。当我添加一个尾部斜线(localhost/config.php /)时,它不显示404页面,而是一个空白页面。我应该添加什么代码?感谢:D – Mattx

+0

您可以简单地从'RewriteRule' _pattern_的末尾删除'$',以匹配_start_'/ config.php'的所有请求。例如。 'RewriteRule^config \ .php - [R = 404,L]'。额外的斜线(以及其后的所有内容)称为尾部_pathname信息_。这可以在服务器上禁用,使用指令'AcceptPathInfo Off',这样所有包含附加路径信息的URL都会生成一个404 - 尽管这可能或不可取。 – MrWhite

+1

谢谢,感谢您的帮助! @ w3dk – Mattx