使用 Apache2 有条件地提供文档根目录之外的文件

使用 Apache2 有条件地提供文档根目录之外的文件

我继承了一个用 PHP 编写的 Web 应用程序。代码不是最好的,我想开始使用 Symfony 框架。这将是通过几个版本逐步迁移的过程,所以我需要旧版页面、Web 脚本、CSS 文件和图像像现在一样工作。

我的计划是将 Symfony 安装放在项目根目录的子目录中,并将 Apache2 配置的文档根目录设置为 Symfony 目录。然后我需要设置 Apache2 以从旧文档根目录提供旧脚本。以下是目录结构的前后对比。

前:

lib
htdocs
htdocs\index.php
htdocs\img\logo.png
htdocs\css\styles.css
sql-updates

后:

lib
htdocs
htdocs\index.php
htdocs\img\logo.png
htdocs\css\styles.css
sql-updates
symfony
symfony\app.php

htdocs 是当前文档根目录,而 symfony 将成为新的文档根目录。

Symfony 基本上通过 app.php 脚本工作,因此大多数对 Symfony 代码的请求都会通过该脚本进行。

如果在 symfony 目录中找不到任何页面或文件请求,我希望 Apache 像以前一样在 htdocs 目录中查找。

有没有办法做到这一点,而无需将旧页面的 URI 移动到子目录?

例如,如果以前的 URI 是 www.app.com/ascript.php,并且它解析为 htdocs/ascript.php,那么我不想将 URI 更改为类似 www.app.com/legacy/ascript.php 的内容。

这可能吗?

答案1

这应该非常简单,手册中甚至有一个例子:

http://httpd.apache.org/docs/2.4/rewrite/remapping.html#multipledirs

相关内容