将流量从文件夹或其子文件夹重定向到另一个文件夹

Redirect traffic from folder or its subfolders to another folder

我在默认 var/www/html 路径上有一个 Apache Web 服务器 运行。

如下所示:

var (Folder)
|   www (Folder)
|   |   html (Folder)
|   |   |   index.php (File)
|   |   |   some_other_files.php (File)
|   |   |   ab (Folder)
|   |   |   |   index.php
|   |   my_app (Folder)
|   |   |   ab.php (file)
|   |   |   login (Folder)
|   |   |   |   index.php
|   |   |   index.php (File)

现在我想将所有流量从 domain.com/my_app 及其子文件夹重定向到实际的 var/www/my_app 目录。

这应该 而不是 只是将 var/www/html/index.php 文件重定向到 var/www/my_app/index.php,而且来自 html 子文件夹的所有流量都应该是相应地发送到 my_app 中的文件夹。

示例:

domain.com/my_app/       => var/www/my_app/index.php
domain.com/              => var/www/html/index.php
domain.com/abc           => var/www/html/abc/index.php
domain.com/my_app/login/ => var/www/my_app/login/index.php
domain.com/my_app/ab.php => var/www/my_app/ab.php

请注意,这应该转发/重写对文件夹的请求,而不仅仅是重定向它们!

我如何通过实施支持者 .htaccess 或编辑 apache conf 文件来实现这一点?

提前致谢!

我终于找到了解决方案:

<VirtualHost *:80>
    DocumentRoot /var/www/html/

    Alias /my_app "/var/www/my_app/"
    Alias /my_app/ "/var/www/my_app/"
    <Directory "/var/www/my_app/">
        Order allow,deny
        Allow from all
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

这样,到 domain.com/my_app 的所有 HTTP 流量都会相应地发送到 /var/www/my_app/ 及其子文件夹!