You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在EC2的Nginx中为目录及其内容编写访问限制重写规则

禁止指定目录直接访问配置方案

ajax目录示例

本文以拦截上图示例的ajax目录及其下所有内容直接访问、返回401未授权错误为例,给出主流Web服务器的配置规则:

Nginx 配置

  • 找到对应站点的Nginx配置文件(通常存放在/etc/nginx/conf.d/目录下对应站点的.conf文件,或是nginx.conf的server块内),添加如下规则:
location ^~ /ajax/ {
    return 401;
}
  • 修改完成后执行nginx -s reload重载配置即可生效。
    说明:^~标识匹配所有以/ajax/开头的路径,优先级高于正则匹配,可以确保该目录下的所有请求都会被拦截。

Apache 配置

共有两种实现方式:

方式1:修改站点主配置(性能更优,推荐)

  • 找到对应站点的VirtualHost配置段,添加如下内容:
<Directory /path/to/your/site/ajax>
    RewriteEngine On
    RewriteRule ^ - [R=401,L]
</Directory>

注意将/path/to/your/site/ajax替换为你的站点ajax目录对应的实际绝对路径。

  • 修改完成后执行systemctl reload httpd(CentOS/RHEL系列)或systemctl reload apache2(Debian/Ubuntu系列)重载配置即可生效。

方式2:目录下添加.htaccess文件

如果没有权限修改服务主配置,可以直接在ajax目录下新建.htaccess文件,写入如下内容:

RewriteEngine On
RewriteRule ^.*$ - [R=401,L]

注意需要确保站点主配置中已经开启AllowOverride All,否则.htaccess规则不会生效。

IIS 配置

  • 在站点根目录的web.config文件的<system.webServer>节点下添加如下规则:
<rewrite>
    <rules>
        <rule name="BlockAjaxDirectory" stopProcessing="true">
            <match url="^ajax/(.*)$" />
            <action type="CustomResponse" statusCode="401" statusReason="Unauthorized" statusDescription="You are not authorized to access this resource." />
        </rule>
    </rules>
</rewrite>
  • 保存文件后配置自动生效,无需重启服务。

内容的提问来源于stack exchange,提问作者pilotman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:18:01