Apache-2.2

處理開發子域

  • July 7, 2011

我有一個正在轉發到我的主域的虛擬主機(例如,顯示與我的主域顯示的相同內容)。


現在我的網站使用一個主域:www.example.com

以及各種別名域:example.com short.com

我正在創建一個新的圍牆花園開發網站:dev.example.com

但是我的虛擬主機沒有被該網址辨識。

我是否必須在我的 DNS 主機中為 *.example.com 創建萬用字元記錄?

這是我的預設虛擬主機設置中的相關部分(目前位於/etc/apache2/sites-enabled/000-default):

<VirtualHost *:80>
  ServerAdmin webadmin@example.com
   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 子域並將主域用於其他所有內容?

當您嘗試 ping “dev.example.com”時會發生什麼?它是否完全解析為IP地址?如果是這樣,它是 Apache 伺服器的 IP 地址嗎?

在這種情況下,我懷疑您需要在 DNS(或至少在 /etc/hosts)中配置一個新的“dev.example.com”記錄,以便您的工作站知道該 DNS 應該去哪裡。

嘗試將您的開發站點的 Virtualhost 條目更新為:<VirtualHost *:80>

注意添加:80。

您的虛擬主機定義應與NameVirtualHost設置的值匹配。執行apachectl configtest通常會報告任何不匹配。

引用自:https://serverfault.com/questions/287669