.htaccess 将所有到子域的请求重定向到适当的文件夹

.htaccess 将所有到子域的请求重定向到适当的文件夹,.htaccess,mod-rewrite,apache2,.htaccess,Mod Rewrite,Apache2,我有多个我有子域的客户端 client1.example.com client2.example.com。。。等等 现在在我的根目录中,我有一个通用的代码库,其余的根据客户机的不同而有所不同 所以在我的根目录中有这些文件夹 mymainrepo客户1客户2 mymainrepo包含所有通用代码 client1包含多个文件夹,如缓存数据库设置 client2包含多个文件夹,如缓存数据库设置 但是缓存和数据库设置的内容对于每个客户端都是不同的。 所以我想做的是,如果一个请求进入一个客户端,它要求一个

我有多个我有子域的客户端 client1.example.com client2.example.com。。。等等

现在在我的根目录中,我有一个通用的代码库,其余的根据客户机的不同而有所不同

所以在我的根目录中有这些文件夹 mymainrepo客户1客户2

mymainrepo包含所有通用代码

client1包含多个文件夹,如缓存数据库设置 client2包含多个文件夹,如缓存数据库设置

但是缓存和数据库设置的内容对于每个客户端都是不同的。 所以我想做的是,如果一个请求进入一个客户端,它要求一个缓存文件夹contenet,我希望它从这个客户端文件夹得到服务

因此,如果请求是client1.example.com/cache 它将提供来自

doc root
    |
    |
     -------client1
                |
                |_______cache
如果请求是client2.example.com/cache 它将从

doc root
        |
        |
         -------client2
                    |
                    |_______cache
等等等等

任何帮助都将不胜感激 谢谢

**编辑**

好的,我试过这个,这个很有效

RewriteEngine on
RewriteCond %{HTTP_HOST} ^((?!www\.).+)\.domain.com$[nc]
RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [r=301,nc]
DirectoryIndex client1/index.html
问题是我想让这个动态而不是client1硬编码

DirectoryIndex client1/index.html
我试过了

目录索引%1/index.html

但这并不奏效


任何帮助都将不胜感激

您可以使用以下内容

RewriteEngine on


RewriteCond %{HTTP_HOST} ^((?!www\.).+)\.domain.com$
RewriteRule ^.*$ /%1%{REQUEST_URI} [L]

这将把
client.domain.com/path
重写到主文档根目录的
/client
文件夹中。因此,如果请求是
client.domain.com/cache
,这将在内部将其重定向到
/client/cache
,向您显示该文件夹中的内容。

不幸的是,它什么也不做。。。没有重定向。。。mod_rewrite已启用且工作正常。但是这些规则不起作用当你在浏览器中键入
sub.domain.com
时会发生什么?您是否有任何服务器端错误?在任何其他重写规则之前,请确保该规则位于htaccess的顶部。您可以发布完整的.htaccess吗?是否希望此新规则仅重写
/cache/
URI?