我的域名更改了,我需要在 Apache 中更改什麼?
所以我有一個免費的.gq 域名,幾天后就會過期,所以我買了一個.xyz 域名。我需要在 Apache (Debian) 中更改哪些內容,以便一切都能像往常一樣工作?
我已經更改了虛擬主機配置文件
/etc/apache/sites-available
,執行命令a2dissite NAME-OF-SUBDOMAIN.domain.gq
和a2ensite 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 小時。
您可以列出所有已配置和活動
VirtualHost
的apache2ctl -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.conf
用Include sites-enabled/
.現在,當瀏覽器發送它的 HTTP 請求時,以
GET / HTTP/1.1 Host: sub2.example.com
Apache 通過配置
ServerName
和指令並在第一次匹配ServerAlias
時停止。如果它沒有找到任何匹配,它會回退到第一個虛擬主機(預設主機文件名以它開頭,使其成為第一個處理的文件)。000-
為了使用
DocumentRoot
文件中配置的和另一個指令,sub2.example.com
您的配置必須滿足以下條件:
/etc/apache2/sites-enabled/sub2.example.com
一定有ServerName sub2.example.com
- 任何以前的配置文件,即
000-default
和sub1.example.com
不能有sub2.example.com
or*.example.com
inServerName
orServerAlias
。很可能您已經在配置文件的配置文件中聲明 了。
ServerAlias *.example.com``www.example.com