ここでは、完全なドメイン名と相対ドメイン名について詳しく読むことができます。
起こりうる問題
ユーザーが誤って末尾にドットを含むドメイン名を入力したり、「ウェルウィッシャー」からリンクをたどってサイトのドメイン名に末尾にドットを付けたりできるという事実を考慮しない場合、次の予期しない状況が発生する可能性があります。
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。リクエストのホスト名が無効です。
Github
https://github.com./login
認証が機能しません。
https://twitter.com。
404-ページが見つかりません。
ヤフー
https://login.yahoo.com。
認証が機能しません。
ウィキペディア
http://en.wikipedia.org./w/index.php?title=Special:UserLogin
認証が機能しません。
MSN
http://msn.com。
不正なリクエスト-無効なホスト名
HTTPエラー400。リクエストのホスト名が無効です。
マイクロソフト
http://microsoft.com。
不正なリクエスト-無効なホスト名
HTTPエラー400。リクエストのホスト名が無効です。
eBay
https://signin.ebay.com./ws/eBayISAPI.dll?SellItem
承認は正常に完了します。
Tumblr
http://www.tumblr.com
見つかりません。
Flickr
http://www.flickr.com
申し訳ありませんが、Flickrはiframeへの埋め込みを許可していません。
Dropbox
www.dropbox.com./login
エラー(403)奇妙なことをしようとしていたようです。 次のウィンドウで別のDropboxアカウントにログインしていますか?
VK
http://vk.com。
認証が機能しません。
JavaScriptエラー:「NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN:無効なdocument.domain値」vk.com。 (41行目)
アレクサ
https://www.alexa.com。
www.alexa.comへのリダイレクト
Yandex Mail
https://mail.yandex.ru。
認証は正常に実行され、 mail.yandex.ru / neo2 /#inboxにリダイレクトされます
Yandex Search
www.yandex.ru
JavaScriptエラー:「NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN:不正なdocument.domain値」 www.yandex.ru (5行目)
ハブラハブル
http://habrahabr.ru./login/
認証が機能しません。
Mail.ru
http://mail.ru。
mail.ruへのリダイレクトが構成されています
https://e.mail.ru./cgi-bin/login
認証が機能しません。
UPD:
1)Nginxでは、完全修飾ドメイン名をserver_name( #comment_6011533 )として指定して仮想サーバーを構成することはできません。
server { server_name domain.zone. ; ... }