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

使用.htaccess阻止通过当前站点访问服务器其他网站文件夹

问题描述

服务器部署了多个绑定附加域名的网站,每个域名对应public_html目录下的独立文件夹(例如sports.com对应sports文件夹、quizzes.com对应quizzes文件夹)。当前访问sports.com可正常加载对应内容,但输入sports.com/quizzes会直接显示quizzes.com的内容,即任意站点的URL都能访问其他网站的文件夹。

尝试过两种.htaccess规则阻止这种跨站访问,但无论把规则放在public_html根目录还是各站点独立文件夹下都无效:
第一种规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} sports\.com [NC] 
RewriteRule ^quizzes/(.*)$ - [F,L]

第二种规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^sports\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/quizzes/
RewriteRule .* - [F,L]

当前public_html根目录的.htaccess包含重定向及黑名单规则,但黑名单规则未生效。虽未确认mod_rewrite是否启用,但其他URL重写功能正常。同时想了解:仅能访问其他公开网站文件夹时,是否存在安全风险?

解决方案
  1. 调整虚拟主机配置(推荐)
    不要依赖.htaccess,直接修改服务器的虚拟主机配置,给每个域名设置独立的DocumentRoot,指向对应的子文件夹(例如sports.com的DocumentRoot设为/path/to/public_html/sports)。这样每个域名的访问范围被限制在自身文件夹内,从根源上杜绝跨文件夹访问的可能,比.htaccess规则更可靠。

  2. 修正.htaccess规则(根目录生效版)
    如果必须用.htaccess,在public_html根目录添加以下规则,确保每个域名只能访问自身对应的文件夹:

    RewriteEngine On
    # 针对sports.com,强制访问指向sports文件夹
    RewriteCond %{HTTP_HOST} ^sports\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/sports/
    RewriteRule ^(.*)$ /sports/$1 [L]
    # 针对quizzes.com,强制访问指向quizzes文件夹
    RewriteCond %{HTTP_HOST} ^quizzes\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/quizzes/
    RewriteRule ^(.*)$ /quizzes/$1 [L]
    # 阻止跨域名访问其他站点文件夹
    RewriteCond %{HTTP_HOST} ^sports\.com$ [NC]
    RewriteRule ^quizzes/(.*)$ - [F,L]
    RewriteCond %{HTTP_HOST} ^quizzes\.com$ [NC]
    RewriteRule ^sports/(.*)$ - [F,L]
    

    注意:若有更多域名,需对应添加类似规则。同时要确保.htaccess文件权限为644,且虚拟主机配置中开启了AllowOverride All或AllowOverride FileInfo,否则规则不会生效。

  3. 排查.htaccess无效原因

    • 检查虚拟主机配置中的AllowOverride参数,必须设置为允许重写规则生效的权限。
    • 确认mod_rewrite模块已启用:可通过PHP的phpinfo()搜索mod_rewrite查看状态,或用服务器命令(如Apache的apache2ctl -M)检查加载的模块列表。
风险分析

这种跨文件夹访问存在明确安全风险:

  • 敏感信息泄露:若其他网站文件夹中存在未公开的配置文件(如config.php)、日志或用户数据文件,攻击者可直接通过跨域名URL访问获取。
  • 恶意利用风险:如果某个网站存在上传漏洞,攻击者上传恶意脚本后,可通过其他域名的URL访问执行,进而控制多个站点。
  • SEO负面影响:不同域名下出现重复内容,会被搜索引擎判定为镜像站点,降低各网站的搜索排名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:42:46