如何使用mod_rewrite根据URL的子域更改提取的文件?

时间:2010-01-16 02:39:56

标签: apache .htaccess mod-rewrite

所以说我有一个要求的网址:

sub.domain/file.bin

我希望获取此文件:

domain/hosted/sub/file.bin

我如何构建重写指令?我已经做了好几天了,这让我很头疼......

子域很多,经常被添加和删除,所以我试图找到一个适用于所有子域的解决方案。

3 个答案:

答案 0 :(得分:1)

在sub.domain的httpd配置中:

RewriteCond %{HTTP_HOST} ([^\.]+).domain
RewriteRule ^/file.bin$ http://domain/hosted/%1/file.bin

答案 1 :(得分:1)

假设www.domain.com的主目录是domain/,而且 - 给定任何子域sub.domain.com - 您希望该子域的主目录的文件位于{{1 }}

尝试这样的事情:

domain/hosted/sub/

你可能还需要在你的DNS中使用通配符条目......但我会承认DNS和htaccess mod重写是我的一些弱点。另请参阅http://www.webmasterworld.com/forum92/138.htm

答案 2 :(得分:1)

尝试此规则:

RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$
RewriteCond %1 !=www
RewriteRule !^hosted/ hosted/%1%{REQUEST_URI} [L]