在VertrigoServ 2.68中添加虚拟目录需手动编辑httpd.conf:在文件末尾插入含Alias和对应Directory块的IfModule alias_module配置,路径须为英文无空格,Require all granted不可拼错,并将AllowOverride设为All以支持.htaccess。

VertrigoServ 2.68 是一个 Windows 下的 Apache + PHP + MySQL 集成包,它不支持直接在控制面板里点选添加虚拟目录,必须手动改 httpd.conf —— 而且改错一行就可能导致 Apache 启动失败。
怎么在 VertrigoServ 2.68 中添加虚拟目录(Alias)
VertrigoServ 的主配置文件是 C:\Program Files\VertrigoServ\Apache\conf\httpd.conf(路径可能因安装位置不同而异,比如你装在 E:\VertrigoServ,那就要找对应路径)。不要用“添加站点”按钮,那个只管虚拟主机(VirtualHost),不管虚拟目录(Alias)。
在 httpd.conf 文件末尾(或 LoadModule 区块之后、<directory></directory> 之前)插入如下内容:
<IfModule alias_module>
Alias /myapp "E:/projects/myphpapp"
<Directory "E:/projects/myphpapp">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</IfModule>
-
/myapp是浏览器访问路径,比如http://localhost/myapp/index.php -
E:/projects/myphpapp必须是真实存在的本地路径,且不能有中文或空格(否则 Apache 会静默失败) -
Require all granted是 Apache 2.4+ 的写法;VertrigoServ 2.68 基于 Apache 2.4.x,别写旧版的Allow from all,否则报错Invalid command 'Allow'
为什么加了 Alias 还 403 或 500?
常见错误不是路径写错,而是权限和模块没开:
立即学习“PHP免费学习笔记(深入)”;
- 确认
alias_module已启用:搜索LoadModule alias_module,确保前面没# - 检查路径中是否有中文、全角符号、括号或空格 —— VertrigoServ 对这类字符极其敏感,哪怕只是文件夹名含「测试」也会拒绝启动 Apache
- 如果出现
Forbidden You don't have permission to access this resource,说明<Directory>块缺失或Require all granted拼错(比如写成require小写) - 修改完
httpd.conf后,必须点击 VertrigoServ 主界面的 Restart Apache(不是 Stop/Start),否则配置不生效
Alias 和 VirtualHost 别混用
VertrigoServ 默认启用了 NameVirtualHost *:80 和多个 <VirtualHost *:80>,但这些只响应完整域名(如 admin.bm.com),和 /myapp 这种 URL 路径级的别名完全无关。你在 httpd-vhosts.conf 里加 Alias 是无效的 —— Apache 不允许在 VirtualHost 外部使用 Alias,除非显式用 <IfModule alias_module> 包裹并放在主配置里。
- 想让
http://localhost/myapp和http://admin.bm.com同时工作?可以。前者走Alias,后者走VirtualHost,互不干扰 - 但别试图在
<VirtualHost>块里再写Alias来“覆盖子路径”,VertrigoServ 的 Apache 版本不支持这种嵌套逻辑
PHP 文件能执行,但 .htaccess 不生效?
这是最隐蔽的问题:VertrigoServ 2.68 默认把网站根目录(DocumentRoot)设为 C:\Program Files\VertrigoServ\www,而它的 <Directory "C:/Program Files/VertrigoServ/www"> 块里写了 AllowOverride None。这意味着即使你在 E:/projects/myphpapp/.htaccess 里写了重写规则,Apache 也直接忽略。
解决方法只有两个:
- 在你自定义的
<Directory "E:/projects/myphpapp">块里,把AllowOverride None改成AllowOverride All(上面示例已体现) - 或者干脆不用
.htaccess,把重写规则直接写进<Directory>块里,例如加一行:RewriteEngine On和RewriteRule ^(.*)$ index.php [QSA,L]
最后提醒一句:VertrigoServ 2.68 的 Apache 配置对换行符、缩进、引号类型(必须英文双引号)都敏感,复制配置后务必用记事本或 VS Code 查看是否混入了不可见字符。



















