

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# DNS 網域名稱格式
<a name="DomainNameFormat"></a>

網域名稱 (包括網域、託管區域和記錄的名稱) 是由一系列以點分隔的標籤所組成。每個標籤長度最多可達 63 個位元組。網域名稱的總長度不能超過 255 個位元組 (包括點)。Amazon Route 53 支援任何有效的網域名稱。

命名需求取決於您是註冊網域名稱還是指定託管區域或記錄的名稱。請參閱適用的主題。

## 為網域名稱註冊設定網域名稱的格式
<a name="domain-name-format-registration"></a>

對於網域名稱註冊，網域名稱只能包含 a-z、0-9 和 – (連字號)。不能在標籤開頭或結尾指定連字號。

如需有關如何註冊國際化網域名稱 (IDN) 的詳細資訊，請參閱[設定國際化網域名稱的格式](#domain-name-format-idns)。

## 為託管區域和記錄設定網域名稱的格式
<a name="domain-name-format-hosted-zones"></a>

對於託管區域和記錄，網域名稱可以包含下列任何可列印的 ASCII 字元 (不含空格)：
+ a-z
+ 0-9
+ -(連字號)
+ \$1 " \$1 \$1 % & ' ( ) \$1 \$1 , - / : ; < = > ? @ [ \$1 ] ^ \$1 ` \$1 \$1 \$1 \$1 . 

Amazon Route 53 會將字母字元儲存為小寫字母 (a-z)，不論儲存時指定為大寫、小寫字母或逸出碼中的對應字母。

如果您的網域名稱包含下列任何字元，則必須使用 \$1*三位數八進位碼*格式的逸出碼來指定字元：
+ 八進位字元 000 到 040 (0 至 32 十進位，0x00 到 0x20 十六進位)
+ 八進位字元 177 到 377 (127 至 255 十進位，0x7F 到 0xFF 十六進位)
+ . (句號)，八進位字元 056 (十進位 46、十六進位 0x2E)，當在網域名稱中用做字元時。使用 . 做為標籤之間的分隔符號時，則不需要使用逸出碼。

如果網域名稱包含 z、0-9、- (連字號) 或 \$1 (底線) 以外的任何字元，Route 53 API 動作會將這些字元當做逸出碼傳回。無論您在建立實體時將字元指定為字元或逸出碼，都是如此。Route 53 主控台會將字元顯示為字元，而不顯示為逸出碼。

如需對應八進位碼的 ASCII 字元清單，請在網際網路上搜尋「ascii 表格」。

若要指定國際化網域名稱 (IDN)，請將名稱轉換為 Punycode。如需詳細資訊，請參閱[設定國際化網域名稱的格式](#domain-name-format-idns)。

## 在託管區域和記錄的名稱中使用星號 (\$1)
<a name="domain-name-format-asterisk"></a>

您可以建立名稱中包含 \$1 的託管區域和記錄。

**託管區域**
+ 網域名稱最左邊的標籤中不可包含 \$1。例如，不允許 \$1. example.com。
+ 如果您在其他位置包含 \$1，DNS 會將它視為 \$1 字元 (ASCII 42)，而不是萬用字元。

**記錄**

DNS 會根據 \$1 字元出現在名稱中的位置，將其視為萬用字元或 \$1 字元 (ASCII 42)。請注意下列在記錄名稱中使用 \$1 做為萬用字元的限制：
+ \$1 必須取代網域名稱最左邊的標籤，例如 \$1. example.com 或 \$1.acme.example.com。如果您在任何其他位置包含 \$1 (例如 prod.\$1.example.com)，則 DNS 會將其視為 \$1 字元 (ASCII 42)，而不是萬用字元。
+ \$1 必須取代整個標籤。例如，您無法指定 \$1prod.example.com 或 prod\$1.example.com。
+ 特定網域名稱具有高優先順序。例如，如果您建立 \$1. example.com 和 acme.example.com 的記錄，Route 53 一律會使用 acme.example.com 記錄中的值，回應 acme.example.com 的 DNS 查詢。
+ \$1 適用於包含星號之子網域層級的 DNS 查詢，以及該子網域的所有子網域。例如，如果您建立名為 \$1.example.com 的記錄，Route 53 會使用該記錄中的值，以回應 zenith.example.com、acme.zenith.example.com 和 pinnacle.acme.zenith.example.com 的 DNS 查詢 (如果該託管區域沒有任何類型的記錄)。

  如果您建立名為 \$1.example.com 的記錄，且 example.com 記錄不存在，Route 53 會以 `NXDOMAIN` (不存在的網域) 回應 example.com 的 DNS 查詢。
**注意**  
如果您搭配 Route 53 使用 AWS Certificate Manager，請注意，ACM 萬用字元憑證只會保護一個子網域層級。例如，\$1.example.com 的 ACM 憑證會保護 login.example.com 和 test.example.com，但不會保護 test.login.example.com。如需詳細資訊，請參閱[AWS Certificate Manager 憑證特性和限制](https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate-characteristics.html)。
+ 針對同一層級所有子網域和網域名稱，您可以將 Route 53 設定為對 DNS 查詢傳回相同的回應。例如，您可以使用 example.com 記錄，將 Route 53 設定為回應 acme.example.com 和 zenith.example.com 等 DNS 查詢。執行以下步驟：

  1. 建立網域的記錄，例如 example.com。

  1. 建立子網域的別名記錄，例如 \$1.example.com。指定您在步驟 1 建立的記錄，做為別名記錄的目標。
+ \$1 不可用做 NS 類型之記錄的萬用字元。

## 設定國際化網域名稱的格式
<a name="domain-name-format-idns"></a>

當您註冊新的網域名稱或建立託管區域和記錄，您可以指定 a-z 之外的字母 (例如法語中的 ç)、其他字母 (例如斯拉夫字母或阿拉伯字母) 中的字元，以及中文、日文或韓文等語言中的字元。Amazon Route 53 會用 Punycode 儲存這些國際化網域名稱 (IDN) (將 Unicode 字元轉換為 ASCII 字串表示)。

如果您要註冊網域名稱，請注意下列事項：
+ 只有在頂層網域 (TLD) 支援 IDN 並支援您要使用的語言時，才能使用 a-z、0-9 和 - (連字號) 以外的字元。若要判斷 TLD 支援哪些語言，請參閱[可向 Amazon Route 53 註冊的網域](registrar-tld-list.md)。
+ 如果名稱址包含字母 a-z，您可以指定不支援語言的名稱。例如，如果 TLD 不支援法文，但您要使用的名稱只包含 a-z 的字母 (而沒有變音符號)，您仍可使用該名稱。在此範例中，可允許包含 "c" 的名稱，不允許包含 "ç" 的名稱。
+ 如果 TLD 不支援 IDN 或不支援您要用於網域名稱的語言，您也無法以 Punycode 指定名稱，即使 Punycode 只包含 a-z、0-9 和 - 亦然。

以下範例顯示國際化網域名稱「中国.asia」的 Punycode 表示：

`xn--fiqs8s.asia`

當您在現代瀏覽器的網址列中輸入 IDN，瀏覽器會先將它轉換為 Punycode，然後提交 DNS 查詢或提出 HTTP 請求。

如何輸入 IDN 取決於您要建立的內容 (網域名稱、託管區域或記錄)，以及建立方式 (API、開發套件或 Route 53 主控台)：
+ 如果您使用的是 Route 53 API 或其中一個 AWS SDKs，您可以透過程式設計方式將 Unicode 值轉換為 Punycode。例如，如果您使用 Java，可以透過使用 java.net.IDN 程式庫的 **toASCII** 方法，將 Unicode 值轉換為 Punycode。
+ 如果您使用 Route 53 主控台註冊網域名稱，可以將名稱 (包括 Unicode 字元) 貼至名稱欄位，然後主控台會先將值轉換為 Punycode，再進行儲存。
+ 如果您使用 Route 53 主控台來建立託管區域或記錄，需要先將網域名稱轉換為 Punycode，然後在適用的 **Name (名稱)** 欄位中輸入名稱。如需線上轉換器的詳細資訊，請在網際網路上搜尋「punycode 轉換器」。

如果您要註冊網域名稱，請注意並非所有頂層網域 (TLD) 都支援 IDN。如需 Route 53 支援的 TLD 清單，請參閱 [可向 Amazon Route 53 註冊的網域](registrar-tld-list.md)。已記錄不支援 IDN 的 TLD。