能同时配置多端口与防盗链,但必须分两步:先配置多端口并确保各站点可访问,再为每个端口站点根目录单独部署.htaccess防盗链规则;规则中域名需匹配实际访问方式(含协议、端口、大小写),且必须开启对应的AllowOverride All。

能同时配置,但必须分两步做:先配好多端口并确保各站点可访问,再在对应站点的 .htaccess 里加防盗链规则。直接套用默认 htdocs 的规则,对其他端口站点无效。
多端口配置要改三处关键位置
只改 httpd.conf 里的 Listen 不够,漏掉任意一处都会导致 403 或 404:
- 在
C:\xampp\apache\conf\httpd.conf中,Listen 80下方追加你要的端口,比如:Listen 8080、Listen 8081 - 确认该文件中这行已取消注释:
Include conf/extra/httpd-vhosts.conf - 在
C:\xampp\apache\conf\extra\httpd-vhosts.conf底部为每个端口写一个块,且每个块内必须包含完整的段,并设AllowOverride All—— 这是.htaccess能生效的前提
常见错误现象:页面显示 Access forbidden!。本质是 Apache 拒绝执行目录下任何规则,不是路径错,而是 AllowOverride 没开或 范围没覆盖到实际 DocumentRoot。
防盗链规则必须按端口/站点单独部署
mod_rewrite 规则不跨端口生效。你在 htdocs/.htaccess 写的防盗链,只管 :80 请求;:8080 站点必须有自己的 .htaccess 放在它自己的 DocumentRoot 根目录下。
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 每个端口站点根目录(如
C:/xampp/htdocs/myapp)都要放一份独立的.htaccess - 规则里的域名判断要匹配该站点实际访问方式,比如用
http://localhost:8080访问,RewriteCond就得写成:!^https?://(www\.)?localhost(:8080)?,否则 Referer 匹配失败,防盗链形同虚设 - 若站点通过自定义域名访问(如
dev.test),则RewriteCond中的域名要和hosts映射及浏览器地址栏完全一致,大小写、端口、协议都不能差
示例(放在 C:/xampp/htdocs/blog/.htaccess 中,对应 :8080 端口):
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?dev\.test(:8080)?$ [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F]
重启前务必验证配置语法
Apache 对配置极其敏感,一个错位括号或拼写错误(比如把 AllowOverride 写成 AllowOveride)会导致服务无法启动,XAMPP 控制面板上 Start 按钮点一下就变灰。
- 打开命令行,cd 到
C:\xampp\apache\bin,运行:httpd -t - 输出
Syntax OK才代表所有配置无误;若报错,会明确指出哪一行、哪个文件出问题 - 别跳过这步 —— 多端口 + 防盗链叠加后,出错概率显著升高,而错误提示往往藏在日志里,不主动检查很难定位
最易被忽略的是:不同端口站点的 .htaccess 文件权限是否被系统拦截(尤其 Windows 下右键新建文本再改名,可能带隐藏扩展名),以及 mod_rewrite.so 是否已在 httpd.conf 中真正启用(不止是取消注释,还要确认模块路径未被修改)。










