【问题标题】:Apache Settings For Unique subdomain and Domain Directories唯一子域和域目录的 Apache 设置
【发布时间】:2013-11-23 07:00:33
【问题描述】:

我对大部分网络服务器配置都相当有能力,但我遇到了问题。

我有一个带有一个子域的 VPS 安装。目前链接 sub1.domain.com 指向 public_html/www 文件夹的根目录。

我现在正在考虑创建新的子域以及使用 domain.com 指向 wordpress 安装。

据我了解,我必须编辑 apache httpd.conf 文件,但我不确定该怎么做。我希望我必须让 domain.com 指向一个子目录以及 sub2.domain.com 指向不同的子目录。类似于以下内容。

sub1.domain.com >> rootPathForApache/
domain.com >> rootPathForApache/domain.com/
sub2domain.com >> rootPathForApache/sub2/

有人可以指点我正确的方向吗?

亲切的问候,

【问题讨论】:

    标签: apache directory subdomain config


    【解决方案1】:

    你有几个选择:

    选项 1: Apache 的 <VirtualHost> directive 可以解决这个问题(多个)。这仅在server config context 中可用。

    <VirtualHost *:80>
        DocumentRoot "rootPathForApache/"
        ServerName sub1.domain.com
    </VirtualHost>
    
    <VirtualHost *:80>
        DocumentRoot "rootPathForApache/domain.com/"
        ServerName domain.com
    </VirtualHost>
    
    <VirtualHost *:80>
        DocumentRoot "rootPathForApache/sub2/"
        ServerName sub2domain.com
    </VirtualHost>
    

    选项 2:rootPathForApache 中使用 .htaccess 文件并加载 mod_rewrite 模块,ServerAlias directive 引入现有的 &lt;VirtualHost&gt; 指令中.

    .htaccess 内容(或者如果你想要在 VirtualHost 指令本身中):

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST}   ^sub1.domain.com
    RewriteRule ^(.*)           $1 [L]
    
    RewriteCond %{HTTP_HOST}   ^domain.com
    RewriteRule ^(.*)           domain.com/$1 [L]
    
    RewriteCond %{HTTP_HOST}   ^sub2domain.com
    RewriteRule ^(.*)           sub2/$1 [L]
    

    ...还有ServerAlias:

    ServerName domain.com
    ServerAlias sub1.domain.com sub2domain.com
    

    后一种解决方案(选项 2)看起来很荒谬,特别是因为 ServerAlias 仅在 VirtualHost 指令中可用,而 mod_rewritehtaccess 文件增加了不必要的开销。这似乎并不自然。我想它说明了 Apache 的配置和模块的灵活性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      相关资源
      最近更新 更多