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

时间:2018-06-23 21:34:03

标签: apache .htaccess mod-rewrite configuration forward

我在默认的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文件来实现这一目标?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

我终于找到了解决方法:

<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/及其子文件夹!