Debian

我的域名更改了,我需要在 Apache 中更改什麼?

  • March 25, 2017

所以我有一個免費的.gq 域名,幾天后就會過期,所以我買了一個.xyz 域名。我需要在 Apache (Debian) 中更改哪些內容,以便一切都能像往常一樣工作?

我已經更改了虛擬主機配置文件/etc/apache/sites-available,執行命令a2dissite NAME-OF-SUBDOMAIN.domain.gqa2ensite NAME-OF-SUBDOMAIN.domain.xyz. 子域仍然不起作用。每當我嘗試訪問 mail.domain.xyz 時,我最終都會訪問 www.domain.xyz 站點。


概括:

  • 使用domain.gq配置 Apache2
  • 我現在使用domain.xyz
  • 我如何告訴 Apache 我不再使用舊域而是使用新域?
  • 如何讓我的子域(虛擬主機)再次工作?

一個虛擬主機文件的範例(所有其他 vh 文件具有相同的方案):

<VirtualHost *:80>
       ServerName pic.domain.xyz
       DocumentRoot /var/www/pic/
</VirtualHost>

現在可以了。我不知道為什麼。我唯一做的就是apt update && apt upgrade -y。我不知道升級是否對它負責,我在更新後僅檢查了 2 小時。

您可以列出所有已配置和活動VirtualHostapache2ctl -S. 列表應該是這樣的:

*:80                   is a NameVirtualHost
        default server www.example.com (/etc/apache2/sites-enabled/000-default:1)
        port 80 namevhost www.example.com (/etc/apache2/sites-enabled/000-default:1)
        port 80 namevhost sub1.example.com (/etc/apache2/sites-enabled/sub1.example.com:1)
        port 80 namevhost sub2.example.com (/etc/apache2/sites-enabled/sub2.example.com:1)

這些主機名的順序與文件名的順序相同,/etc/apache2/sites-enabled/因為它們最初Include/etc/apache2/apache2.confInclude sites-enabled/.

現在,當瀏覽器發送它的 HTTP 請求時,以

GET / HTTP/1.1
Host: sub2.example.com

Apache 通過配置ServerName和指令並在第一次匹配ServerAlias時停止。如果它沒有找到任何匹配,它會回退到第一個虛擬主機(預設主機文件名以它開頭,使其成為第一個處理的文件)。000-

為了使用DocumentRoot文件中配置的和另一個指令,sub2.example.com您的配置必須滿足以下條件:

  1. /etc/apache2/sites-enabled/sub2.example.com一定有ServerName sub2.example.com
  2. 任何以前的配置文件,即000-defaultsub1.example.com不能有sub2.example.comor *.example.comin ServerNameor ServerAlias

很可能您已經在配置文件的配置文件中聲明 了。ServerAlias *.example.com``www.example.com

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