.htaccess 将所有到子域的请求重定向到适当的文件夹
我有多个我有子域的客户端 client1.example.com client2.example.com。。。等等 现在在我的根目录中,我有一个通用的代码库,其余的根据客户机的不同而有所不同 所以在我的根目录中有这些文件夹 mymainrepo客户1客户2 mymainrepo包含所有通用代码 client1包含多个文件夹,如缓存数据库设置 client2包含多个文件夹,如缓存数据库设置 但是缓存和数据库设置的内容对于每个客户端都是不同的。 所以我想做的是,如果一个请求进入一个客户端,它要求一个缓存文件夹contenet,我希望它从这个客户端文件夹得到服务 因此,如果请求是client1.example.com/cache 它将提供来自.htaccess 将所有到子域的请求重定向到适当的文件夹,.htaccess,mod-rewrite,apache2,.htaccess,Mod Rewrite,Apache2,我有多个我有子域的客户端 client1.example.com client2.example.com。。。等等 现在在我的根目录中,我有一个通用的代码库,其余的根据客户机的不同而有所不同 所以在我的根目录中有这些文件夹 mymainrepo客户1客户2 mymainrepo包含所有通用代码 client1包含多个文件夹,如缓存数据库设置 client2包含多个文件夹,如缓存数据库设置 但是缓存和数据库设置的内容对于每个客户端都是不同的。 所以我想做的是,如果一个请求进入一个客户端,它要求一个
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?