服务禁止403用作未找到404

时间:2018-10-03 06:27:36

标签: .htaccess mod-rewrite url-rewriting apache2

我想允许特定的ip访问apache网站。 为此,我在apache2.conf

中使用了以下代码
<Directory /var/www>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all denied
    Require ip xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
</Directory>

我已经如下处理了.htaccess网站中403的ErrorDocument

ErrorDocument 403 /error

然后,我使用重写规则来处理以上错误文档,以将其用作404,而无需在浏览器中更改url。

RewriteCond %{REQUEST_URI} ^/error [NC]
RewriteRule ^([a-zA-Z]*)/?([a-zA-Z]*)?/?([a-zA-Z0-9]*)?/?$ - [R=404,L]

我能够在页面上看到404 Not Found错误,而不是403 Forbidden,请参见下图 enter image description here

页面显示

  

在此服务器上找不到请求的URL /错误。

相反,我希望文本为

  

在此服务器上找不到请求的URL/。

如果可能的话,请提出建议。

  

注意:   我们可以在htaccess中编写重写条件以实现此目标,例如下面的示例为了允许xxx.xxx.xxx.xxx ip,我们可以在.htaccess中编写以下重写规则

RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx
RewriteRule ^([a-zA-Z]*)/?([a-zA-Z]*)?/?([a-zA-Z0-9]*)?/?$ - [R=404,L]
     

我不想通过在特定站点的.htaccess中编写它来使其成为特定于站点的文件,如果我们可以在apache2.conf中编写上述代码并按预期工作,则希望在apache级别使用它。

0 个答案:

没有答案