放置 DNS 记录和子域的最佳实践

nig*_*rod 7 domain-name-system domain a-record cname-record subdomain

假设我有mydomain.com

使用选项 A 是否更好:

[A] mydomain.com      123.45.67.89
[A] www.mydomain.com  123.45.67.89
Run Code Online (Sandbox Code Playgroud)

或选项B:

[A]     mydomain.com      123.45.67.89
[CNAME] www.mydomain.com  mydomain.com
Run Code Online (Sandbox Code Playgroud)

一个接一个地选择实际上会产生什么影响?

第二个问题是,假设我想在blog.mydomain.com拥有子域。我将其设置为 A 记录,如下所示:

[A] blog.mydomain.com  123.45.67.89
Run Code Online (Sandbox Code Playgroud)

为了在用户输入www.blog.mydomain.com时也可以访问它,我还插入了以下记录:

[A] www.blog.mydomain.com  123.45.67.89
Run Code Online (Sandbox Code Playgroud)

问题是,这是一种常见的做法吗?或者有更好的方法来做到这一点?我想要实现的是(用户访问 -> 重定向到):

mydomain.com          -> mydomain.com
www.mydomain.com      -> mydomain.com
blog.mydomain.com     -> blog.mydomain.com
www.blog.mydomain.com -> blog.mydomain.com
other.mydomain.com    -> error
Run Code Online (Sandbox Code Playgroud)

干杯!

Bry*_*ite 9

通常,为了便于维护,最佳实践是这样的:

[A]     mydomain.com            123.45.67.89
[CNAME] www.mydomain.com        mydomain.com
[CNAME] blog.mydomain.com       mydomain.com
[CNAME] www.blog.mydomain.com   mydomain.com
[A]     mail.mydomain.com       123.45.67.89
[MX]    mydomain.com            mail.mydomain.com
Run Code Online (Sandbox Code Playgroud)

这使您可以更改 mydomain.com 的 A 记录,而无需中断您的邮件记录或手动更改每个子域。

您还需要设置您的网络服务器来回答这些名称。这是在 Apache 中执行此操作的示例:

NameVirtualHost 123.45.67.89:80
<VirtualHost 123.45.67.89:80>
    DocumentRoot /var/www/html/mydomain.com
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    ErrorLog logs/mydomain.com-error_log
    CustomLog logs/mydomain.com-access_log combined
</VirtualHost>

<VirtualHost 123.45.67.89:80>
    DocumentRoot /var/www/html/blog.mydomain.com
    ServerName blog.mydomain.com
    ServerAlias www.blog.mydomain.com
    ErrorLog logs/blog.mydomain.com-error_log
    CustomLog logs/blog.mydomain.com-access_log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

对于您提到的重定向:

问题是,这是一种常见的做法吗?或者有更好的方法来做到这一点?我想要实现的是(用户访问 -> 重定向到):

mydomain.com          -> mydomain.com
www.mydomain.com      -> mydomain.com
blog.mydomain.com     -> blog.mydomain.com
www.blog.mydomain.com -> blog.mydomain.com
other.mydomain.com    -> error
Run Code Online (Sandbox Code Playgroud)

要实际更改显示在客户端地址栏中的 URL,需要在服务器端使用 mod_rewrite 完成,而不是 DNS 的功能。