2012-04-28 152 views
3

我只想问一个关于.htaccess的快速问题。.htaccess子域重定向到根域

这里是我的网站主办如何与子域的作品...

一旦我创建一个子......然后他们创建一个文件夹放到根目录文件夹是这样的...

www.mydomain.com ---> public_html 
sub.mydomain.com ---> public_html/sub 

我想要什么要做的是...将所有请求从sub.mydomain.com重定向到www.mydomain.com与一些GET变量或东西来确定从哪个子域请求来自...

因此,例如.. 。当我得到一个请求,像这样工作

http://sub.mydomain.com/myphp.php ---> http://www.mydomain.com/myphp.php?comingfrom=sub 
http://sub.mydomain.com/(anyUrl) ---> http://www.mydomain.com/(anyUrl)?comingfrom=sub 

我也想知道这是否会执行一些的.htaccess重定向存在于主域...

希望你们能帮助我...提前

谢谢...

+0

你需要[虚拟主机(http://httpd.apache.org/docs/2.0/vhosts/)。 – 2012-04-28 13:37:31

+0

你可以查看这个帖子,非常有用。 http://stackoverflow.com/questions/183928/how-to-let-php-to-create-subdomain-automatically-for-each-user – tienrocker 2012-04-29 14:23:08

回答

1

放了的.htaccess与以下内容到您的子文件夹:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC] 
RewriteRule ^(.*) http://www.mydomain.com$1?comingfrom=%1 [QSA,R=301,L] 

(未经测试,抱歉)

编辑:

你指出,你想保持子域在您的地址栏,不想重定向。所以,你需要做一个视图改变你www.mydomain.com的<VirtualHost>像这样

<VirtualHost ...:80> 
    ServerName www.mydomain.com 
    ServerAlias mydomain.com 
    ServerAlias sub.mydomain.com 

    DocumentRoot /path/to/your/docroot/of/www.mydomain.com 

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} !^www\.mydomain\.com [NC] 
    RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC] 
    RewriteRule ^(.*) $1?comingfrom=%1 [QSA,PT,L] 
</VirtualHost> 
+1

这工作......但它“改变”的网址...以任何方式保持它像sub.mydomain.com和内部执行重定向页面? – saggio09 2012-04-28 13:53:16

+0

虽然,我没有使用这个解决方案,因为我的主机不允许它...这是问题的解决方案...所以我要把这作为我的问题的解决方案... – saggio09 2012-05-02 17:18:13