处理开发子域名

处理开发子域名

我有一个正在转发到我的主域的虚拟主机(例如显示与我的主域显示的相同的内容)。


目前我的网站使用主域名:www.example.com

以及各种别名域名:example.com short.com

我正在创建一个新的围墙花园开发网站:dev.example.com

但是我的虚拟主机无法识别该 URL。

我是否必须在我的 DNS 主机或其他地方为 *.example.com 创建通配符记录?

/etc/apache2/sites-enabled/000-default以下是我的默认虚拟主机设置(当前在)中的相关部分:

<VirtualHost *:80>
   ServerAdmin [email protected]
    ServerName www.example.com
    ServerAlias example.com
    ServerAlias shortUrlEx.com
    ServerAlias www.shortUrlEx.com

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

    RewriteCond %{HTTP_HOST} ^shortUrlEx.com [NC]
    RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]

    RewriteCond %{HTTP_HOST} ^www.shortUrlEx.com [NC]
    RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]

    DocumentRoot /var/www/examplepath
    php_value date.timezone "America/New_York"
    php_value expose_php "Off"
    php_value upload_max_filesize 10M
    php_value post_max_size 10M

... other config options

dev.example.com 的配置如下(来自/etc/apache2/sites-enabled/dev.example.com):

<VirtualHost *>
<Directory />
    AuthType Basic
    AuthName "Check Site"
    AuthUserFile /srv/dev-example/config/.htpasswd
    Require valid-user
</Directory>

    ServerName dev.example.com


    DocumentRoot /srv/dev-example/public_html/
    Alias /favicon.ico /srv/dev-example/docs/dev_favicon.ico
    php_value date.timezone "America/New_York"


    php_value expose_php "Off"
    php_value upload_max_filesize 10M
    php_value post_max_size 10M
    <Directory />
        Options FollowSymLinks -Indexes
        AllowOverride None
    </Directory>
    <Directory /srv/dev-example>
        Options FollowSymLinks MultiViews -Indexes
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ... further options that shouldn't be applicable...

我在这里做错了什么?我应该如何配置默认和 dev.example.com 虚拟主机以允许访问 dev 子域,并将主域用于其他所有内容?

答案1

当您尝试 ping “dev.example.com”时会发生什么?它是否解析为 IP 地址?如果是,它是 Apache 服务器的 IP 地址吗?

在这种情况下,我怀疑您需要在 DNS(或至少在 /etc/hosts 中)配置一个新的“dev.example.com”记录,以便您的工作站知道该 DNS 应该去哪里。

答案2

尝试将您的开发站点的 Virtualhost 条目更新为:<VirtualHost *:80>

注意添加:80。

您的虚拟主机定义应该匹配名称虚拟主机设置的值。运行apachectl configtest通常会报告任何不匹配的情况。

答案3

我不得不:

将虚拟主机设置更改为:

<VirtualHost *:80>

取消注释 NameVirtualHost 设置:

NameVirtualHost *:80

并向 dev.shermanbrothers.com 虚拟主机添加 ServerAlias。

ServerAlias dev.shermanbrothers.com

答案4

不应该吗/etc/apache2/sites-enabled/dev.shermanbrothers.com/etc/apache2/sites-enabled/dev.shermanbrothers.com.conf我认为 Apache 需要 *.conf 文件,至少在 CentOS 中是这样的。或者您手动包含了它?

相关内容