【问题标题】:Silent redirect based on domain基于域的静默重定向
【发布时间】:2014-01-21 11:57:48
【问题描述】:

我已经建立了自己的服务器。

假设我的主服务器文件夹是/home/www,我已经设置了名称服务器,以便所有域都指向这个位置。

现在,我要做的是:

  • 将每个域的文件放在单独的子文件夹中
  • 根据请求的域,静默重定向到相应的子文件夹

例如

  • 如果我们需要somedomain.comwww.somedomain.comwww.somedomain.com/anything/(或任何此类变体),则将请求从/home/www/ 重定向到/home/www/somedomain.com/

如何做到这一点?


这是我尝试过的(但鉴于.htaccess 绝对是……不是我的事,它很可能接近于荒谬……):

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www.)?somedomain.com$ [NC]
RewriteRule ^(/)?$ somedomain.com [L]

【问题讨论】:

    标签: php apache .htaccess redirect debian


    【解决方案1】:

    有两种可能的选择。您可以为每个域创建虚拟主机并设置虚拟文档根目录。 或者 您可以使用重写规则。

    来自 apache 虚拟主机文档:

    # Listen for virtual host requests on all IP addresses
    NameVirtualHost *:80
    
    <VirtualHost *:80>
    DocumentRoot /www/www.example1.com
    ServerName www.example1.com
    
    # Other directives here
    
    </VirtualHost>
    
    <VirtualHost *:80>
    DocumentRoot /www/www.example2.org
    ServerName www.example2.org
    
    # Other directives here
    
    </VirtualHost> 
    

    您可以在http://httpd.apache.org/docs/2.2/vhosts/examples.html了解更多信息

    【讨论】:

    • 你能给我举个例子吗?至于虚拟主机,我们是在谈论调整apache2.conf 文件吗?
    • 是的。您需要将虚拟主机放在 apache 配置文件中。
    • 很好的答案!那(或类似的东西)起到了作用。非常感谢,伙计! ;-)
    猜你喜欢
    • 1970-01-01
    • 2011-06-22
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 2017-11-05
    • 2015-12-25
    相关资源
    最近更新 更多