こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

正規化をしたいので、サンプルソースがほしいです

サーチコンソールに下記のように出てしまいます。

日本語ドメインなので、日本語のドメイン名と、16進数のドメイン名が別物として認識されているようです。
もちろん、ドメイン名は全く同じで違いは16進数かそうでないかだけです。

参照元ページ
https://www.就~.tokyo/html/link.html

ユーザーが指定した正規 URL
https://xn~.tokyo/html/link.html

この場合もリダイレクトなのですか?


htacsessで正規化をしたいので、サンプルソースがほしいです。
お願い致します。

投稿日時 - 2019-07-07 15:40:27

QNo.9632970

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>それでは、重複になっているページをURL削除で削除してから、
>日本語ドメインでフェチすればいいのですか?

いやちょっと、お使いのアクセス集計ソフトも分からなければ、何をしたいかもよく分からないので、回答できません。

とりあえずこの質問への回答は「日本語URLへリダイレクトすべきでは無い」という話で結論が出ています。

使用しているアクセス解析ソフト(あるいはレンタルサーバ等)、現状での出力と困っている点、希望する結果を添えて、別の質問として投稿するのが良いでしょう。

投稿日時 - 2019-07-07 21:48:12

ANo.2

日本語ドメインは、punycodeによって英数字にエンコードされたものが、実際のDNSに登録されています。

例えば、「http://日本語.jp」と「https://xn--wgv71a119e.jp/」は、全く同一のものとして扱われます。
日本語ドメインに対応していないブラウザや、そもそも日本語対応していないようなOS環境でも、日本語ドメインのサイトにアクセスできるようになっているわけです。

参考)
>CMAN: 日本語ドメイン/Punycodeとは?
https://www.cman.jp/network/term/punycode/

単なる16進数表記では無く、punycodeエンコードであることは、ドメイン名先頭が「xn--」であることで分かります。
日本語ドメインとpunycode変換後のドメイン名は1対1で対応し、他のドメイン名と混ざるようなことはありません。

これを、英字ドメインアクセスだからと言って日本語ドメインアクセスにリダイレクトさせるようなことは、するべきではないと考えます。

ブラウザは、日本語ドメインがが含まれている場合、punycodeにより変換したあと、DNS問い合わせを行います。
次に、DNS問い合わせによりIPアドレスが分かれば、その相手先に対して、httpリクエストを送ります。
その時に目的サイト名として、ブラウザによって日本語ドメインが送られるか英数字ドメインが送られるかのブレがあり(※目的サイト名を送らない場合も)、集計上別のものとして出てしまうのでしょう。

もしこのとき、強制的に日本語URLへリダイレクトさせた場合、再度ブラウザでのpunycode変換が行われ、サイトへアクセス、リダイレクトを受ける、と無限ループしてしまう恐れがあります。

英数字ドメインへリダイレクトする正規化ならば、そのような事故は起こりませんが。
そのようなリダイレクトを仕掛けるべきでは無く、アクセス集計ソフトの方で対応するべき問題のように思います。

投稿日時 - 2019-07-07 17:59:27

お礼

それでは、重複になっているページをURL削除で削除してから、日本語ドメインでフェチすればいいのですか?

投稿日時 - 2019-07-07 18:29:28

ANo.1

ブラウザがサーバへどちらで伝えてくるかはブラウザの実装次第なので、リダイレクトさせると無限ループに陥る可能性があります。

投稿日時 - 2019-07-07 16:34:31

あなたにオススメの質問