Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails以外の開発一般

日本語ドメインでWordPress!!〜推しキャラが秒で分かるURLはいいぞ〜

BPSの福岡拠点として一緒にお仕事をさせていただいています、株式会社ウイングドアのモリヤマです。

酔狂で個人ブログでは日本語ドメインも使っています🙈

気まぐれで日本語ドメインについて深堀りしてみようと検索しても、見つかる記事は古いものが多い為、
WordPressでの設定方法と簡単な説明を書くのもありかな...🤔と思い今回のネタに選びました!!

あ、ちなみに小規模な個人ブログでは、日本語ドメインだからといってSEO的な有利不利は感じることはありません🤣
しかしプロデューサー活動(アイマスP)をする上では、とても自己満足できるのでお勧めですw

前提

WordPressやVPS・DNSの設定方法など、一般的な設定周りについては割愛させていただきます。

WordPressでの設定方法(結論)

日本語ドメインをPunycodeに変換して、WordPressをインストールすればOK!!

目次

日本語ドメインでWordPress!!

実運用している環境紹介

  • ホスティングサービス:ConoHa VPS
  • VPSイメージタイプ:WordPress(kusanagi)
  • レジストラ:お名前.com

日本語ドメインでWordPressを動かすまでの手順

まずは上記環境での場合の構築手順を箇条書きにて紹介します。

  • 日本語ドメインの取得(動かすだけならhostsファイルで代用可)
  • ConoHaのVPSイメージタイプからWordPress(kusanagi)を選択して起動
    (KUSANAGIの使い方|ConoHa VPSサポート)
  • 起動したVPSのIPアドレスを、使用する日本語ドメインのAレコードに設定する
  • 日本語ドメインをPunycodeに変換する 👈 主にここを説明します!
  • 変換した値でKUSANAGIのプロビジョニングを実施 👈
  • WordPressの初期設定

以上です。簡単(?)ですね!

※KUSANAGIを利用しない場合は通常通りWordPressをインストール後、日本語ドメインをPunycodeに変換してDNSやサーバー側で設定すればOKです。

日本語ドメインをPunycodeに変換する

はい、そもそもPunycodeってなんだよって話ですよね。

Punycode(ピュニコード)とは

Punycode(ピュニコード)
国際化ドメイン名(Internationalized Domain Name: IDN)をアプリケーションで扱えるようにするための仕組みの一つです。
具体的には、国際化ドメイン名の規格であるIDNA(Internationalized Domain Names in Applications)と共に使用されるよう設計された、Unicodeのコードポイント(文字ごとに割り当てられる固有の番号)を、ASCII文字のみを使用して表現する符号化方式(ASCII Compatible Encoding)です。
Punycodeは、Unicode文字列を一意かつ可逆的にASCII文字列に変換します。具体的には、ASCII文字はそのまま表現され、非ASCII文字は英数字とハイフンで構成されるASCII文字で表現されます。
Punycodeの符合化方式に従ってASCII文字に変換した結果にACEプレフィックス(接頭辞)「xn--」を付加したラベルを、「A-ラベル(A-label)」と呼びます。

引用元: JPRS用語辞典|Punycode(ピュニコード)

日本語ドメイン(非ASCII文字)を使用するためには、Punycodeに変換する必要があります。
変換後は英数字の値になるので、日本語ドメインの面影は残りません😢

Punycodeに変換する

エンコーディング手順
この節では Punycode のエンコーディング手順を、「bücher」[1]がどのようにして「bcher-kva」と変換されるかを例にとって説明する。
ASCII文字の分離
最初に入力文字列中にあるすべてのASCII文字を残し、ASCII文字以外の文字を取り去る。またASCII文字以外の文字がある場合は、最後に区切り文字(ハイフン)を追加する。
Punycode 出典: フリー百科事典『ウィキペディア(Wikipedia)』

さぁ!Wikipediaに記載してあるエンコーディング手順に沿っていざ実践

Wikipediaにはエンコーディングについて詳しく書かれていますので興味のある方はそちらを熟読ください。自分は数分で諦めました。

手軽に変換するには、株式会社日本レジストリサービス(JPRS)の日本語JPドメイン名のPunycode変換・逆変換を使うと便利です。

変換例(現時点では運用されていないドメインです)
正規化後 : モリヤマ.net
Punycode : xn--1dkhgx.net

正規化後 : 樋口円香.誕生祭
Punycode : xn--w6q70dfy7anp7b.xn--9myu5go8s

※トップレベルドメインで「誕生祭」は存在しません。

ローカル開発環境で設定する

ローカル開発環境について

今回はすでに運用中の環境に近づける為にKUSANAGI for Vagrantを利用します。

またローカル開発環境なのでhosts利用して、実在しないドメインでWordPressを設定していきたいと思います。実際に公開する事を検討している場合は、取得可能なドメインで試す事をお勧めいたします!!

※Vagrant環境の構築は割愛させていただきます🙏

hostsの修正

今回はhostsを利用します。
一つだけ注意点をあげるとすれば、Punycodeで設定する必要があります。
日本語ドメインはそのままではDNSで利用できない為、hostsでも残念ながら使えません。

sudo vim /etc/hosts

## 日本語ドメイン実演
#192.168.33.93 樋口円香.誕生祭 #←使えない
192.168.33.93 xn--w6q70dfy7anp7b.xn--9myu5go8s

KUSANAGIコマンドを利用してWordPressをインストール

kusanagi provisionを使ってインストールする場合は対話形式で、WordPressのインストールを行えます。
通常ホスト名の項目では、ホスト名を入力すればOKですが、今回は事前に変換しておいたPunycodeを入力してください。
他は通常のプロビジョニングの同じで大丈夫です🙆‍♂️

[root@kusanagi83 vagrant]# kusanagi provision madoka
ターゲットディレクトリは /home/kusanagi/madoka です。
WordPress のインストールで使用する言語を選択してください。
1 : en_US
2 : ja

q : 終了

どれを使用しますか?: 2

ja を選択しました

Webサイトで使用するホスト名(FQDN)を入力してください。 例) kusanagi.tokyo
xn--w6q70dfy7anp7b.xn--9myu5go8s
Webサイトで使用するホスト名(FQDN)をもう一度入力してください。
xn--w6q70dfy7anp7b.xn--9myu5go8s

Let's Encryptを使用される場合、Let's Encrypt の使用規約に同意される必要があります。
使用規約に同意される場合、あなたのメールアドレスを入力してください。同意されない場合、Enterキーを二回押してください。

※実在するドメインであれば、日本語ドメインでもLet's Encryptも利用可能です。

設定内容を確認

プロビジョニングで生成されたApacheやNginxの設定ファイルを見れば、Punycodeで設定されている事がわかります。
KUSANGIを使用しない場合も、バーチャルホストなどでServerNameにPunycodeを設定するだけで基本的にはOKです(リダイレクト等が必要な場合は他にも要調整)。

Apache
[root@kusanagi83 vagrant]# less /etc/httpd/conf.d/madoka_http.conf

#=======================================
# xn--w6q70dfy7anp7b.xn--9myu5go8s
#---------------------------------------

ServerAdmin webmaster@example.com
DocumentRoot /home/kusanagi/madoka/DocumentRoot
ServerName xn--w6q70dfy7anp7b.xn--9myu5go8s
Nginx
[root@kusanagi83 vagrant]# less /etc/nginx/conf.d/madoka_http.conf

#=======================================
# xn--w6q70dfy7anp7b.xn--9myu5go8s
#---------------------------------------

server {
listen 80;
server_name xn--w6q70dfy7anp7b.xn--9myu5go8s;
access_log /home/kusanagi/madoka/log/nginx/access.log main;
error_log /home/kusanagi/madoka/log/nginx/error.log warn;

# rewrite ^(.*)$ https://xn--w6q70dfy7anp7b.xn--9myu5go8s$uri permanent; # SSL ONLY
charset UTF-8;

ブラウザで確認

はい、日本語ドメインでWordPress動いてます!これで設定完了です🎉
(((記事は誕生祭には間に合いませんでした😢)))

所感

日本語ドメインを使う場合、個人で利用する分には大きな障害ありません。
SNSなどで共有する時に、OGPカードなどで表示されるURLがPunycodeになる事が1番のデメリットでしょうか?🤔

例:Twitter

またSEOに強いなどを謳っている記事もあったりしますが、近年はコンテンツの質が重視されているようなので、新規取得のドメインがSEOに大きく影響することはないのかな?と思っています。

自分は「.net」で運用をしているのですが、完全に日本語に拘るのであれば、
日本語のトップレベルドメインで「みんな」が存在します。
思いつく利用方法としては、推しキャラの布教活動用に「ファン投票よろしく.みんな」ドメインとかありじゃないですかね😁

  • 押しキャラの愛称.ファン投票よろしく.みんな
    (あれ、サブドメインも使えば汎用性高くね...)

ちなみに2020年10月時点では取得可能ですよ!!
記事公開時点でもし取得されていたら察してください🙈

日本語ドメインの魅力が少しでも伝わったのなら、皆様もぜひ一度使うことを検討してみてください✨


株式会社ウイングドアでは、Ruby on RailsやPHPを活用したwebサービス、webサイト制作を中心に、
スマホアプリや業務系システムなど様々なシステム開発を承っています。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。