ルートドメインのようなものがそれぞれあり、各ドメインの最後にドットがあります。 ブラウザはドメインの末尾にドットのあるサイトとドットのないサイトにアクセスできるため、おそらくサイトの末尾にドットが付いたドメイン名(domain.zone)でサイトにアクセスできるとは思わないでしょう。
ここでは、完全なドメイン名と相対ドメイン名について詳しく読むことができます。
起こりうる問題
ユーザーが誤って末尾にドットを含むドメイン名を入力したり、「ウェルウィッシャー」からリンクをたどってサイトのドメイン名に末尾にドットを付けたりできるという事実を考慮しない場合、次の予期しない状況が発生する可能性があります。
1)WebサイトがHTTPSで動作する場合、最後にドットが付いたドメイン名にアクセスすると、ブラウザーは信頼できない接続に関する警告を表示しますが、ユーザーはこれに多少驚かされます。
2)承認が機能しない場合があります。 Cookieは、ほとんどの場合、末尾にドットなしでドメイン名に配置されます。 この場合、ユーザーはログインできない理由が長い間困惑します。 末尾にドットが付いたドメイン名にCookieをインストールした場合、末尾にドットが付いていないドメイン名にCookieが転送されることはありません。
3)末尾にドットが付いたドメイン名でサイトにアクセスする確率が考慮されない場合、JavaScriptはページ上で破損する可能性があります。これは堅実なリソースでは受け入れられません。
4)サイトページのキャッシュに問題がある可能性があります(たとえば、同じ
www.cloudflare.comでは、個々のページのキャッシュを最後にドットを付けてクリアできないため、間違ったドメイン名が指定されていることが示されます)。
5)Webサーバー設定の条件で特定のドメイン名(Apacheの
%{HTTP_HOST} 、Nginxの
$ http_host )に依存している場合、最後にドットがないと、さまざまな予期しない状況が発生する可能性があります。など
6)Webサーバーがドメイン名の末尾にドットを付けてサービスするように設定されていない場合、ユーザーは誤ってドメインの末尾にドットを入力すると、次のようなメッセージが表示されます。
7)理論的には、誰かが誤ってまたは意図的にサイトのページへのリンクをドメイン名の末尾にドットを付けた場合(ドメイン検索エンジンがドメインを認識するかどうかについての情報がある場合)、リソースにコンテンツの重複があると見なすことができます。 zoneおよびdomain.zone。を1つのドメインとして-トピックに関するコメントへようこそ。
解決策
ドット付きのドメイン名からドットなしのドメイン名へのリダイレクトにより、上記の問題のいくつかを回避できます。
Apache(.htaccess)RewriteCond %{HTTP_HOST} !^domain\.zone$ RewriteRule ^(.*)$ http://domain.zone/$1 [L,R=301]
Nginx(nginx.conf) if ($http_host != 'domain.zone') { return 301 http://domain.zone$request_uri; }
IIS(web.config) <httpRuntime relaxedUrlToFileSystemMapping="true"/> <rule name="point" stopProcessing="true"> <match url="^(.*)\.$" /> <action type="Redirect" url="{R:1}" redirectType="Temporary" /> </rule>
戦闘中の偵察
フェイスブックhttps://www.facebook.com。www.facebook.comにリダイレクトし
ます (信頼できない接続の警告に同意した後)。
メガアップロードhttps://mega.co.nz./#login認証は正常に実行されますが、
https://mega.co.nzの末尾にドットのないドメインに切り替えた後、ユーザーは無許可と見なされます。
スタックオーバーフローhttp://stackoverflow.com。不正なリクエスト-無効なホスト名
HTTPエラー400。リクエストのホスト名が無効です。
Githubhttps://github.com./login認証が機能しません。
Twitterhttps://twitter.com。404-ページが見つかりません。
ヤフーhttps://login.yahoo.com。認証が機能しません。
ウィキペディアhttp://en.wikipedia.org./w/index.php?title=Special:UserLogin認証が機能しません。
MSNhttp://msn.com。不正なリクエスト-無効なホスト名
HTTPエラー400。リクエストのホスト名が無効です。
マイクロソフトhttp://microsoft.com。不正なリクエスト-無効なホスト名
HTTPエラー400。リクエストのホスト名が無効です。
eBayhttps://signin.ebay.com./ws/eBayISAPI.dll?SellItem承認は正常に完了します。
Tumblrhttp://www.tumblr.com見つかりません。
Flickrhttp://www.flickr.com申し訳ありませんが、Flickrはiframeへの埋め込みを許可していません。
Dropboxwww.dropbox.com./loginエラー(403)奇妙なことをしようとしていたようです。 次のウィンドウで別のDropboxアカウントにログインしていますか?
VKhttp://vk.com。認証が機能しません。
JavaScriptエラー:「NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN:無効なdocument.domain値」vk.com。 (41行目)
アレクサhttps://www.alexa.com。www.alexa.comへのリダイレクト
Yandex Mailhttps://mail.yandex.ru。認証は正常に
実行され、
mail.yandex.ru / neo2 /#inboxにリダイレクトされ
ますYandex Searchwww.yandex.ruJavaScriptエラー:「NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN:不正なdocument.domain値」
www.yandex.ru (5行目)
ハブラハブルhttp://habrahabr.ru./login/認証が機能しません。
Mail.ruhttp://mail.ru。mail.ruへのリダイレクト
が構成されていますhttps://e.mail.ru./cgi-bin/login認証が機能しません。
UPD:1)Nginxでは、完全修飾ドメイン名をserver_name(
#comment_6011533 )として指定して仮想サーバーを構成することはできません。
server { server_name domain.zone. ; ... }