私は Namecheap ドメインと Vultr ホスティングを使用しています。
DNS wwwを非wwwにリダイレクトしようとしています。
www.example.comからexample.com
私はVultrに連絡し、DNSマネージャーを使用してこれを行う方法を尋ねました。彼らは自己管理されているため、彼らは役に立たないと述べました。そこで、私はNamecheapに連絡しました。彼らは、彼らがVultrのDNSマネージャーにアクセスできないので助けにはならない、私が示したレコードが正しいかどうかを教えてくれないので、Vultrに連絡する必要があると述べました。だから私は無限のサポートループにいます。
Vultr DNS Manager
Www以外にリダイレクトするようにCNAMEを設定する方法について この答え に従いました。
Type | Name | Data | Seconds
--------------------------------------
A | | ipv4 address | 300
AAAA | | ipv6 address | 300
CNAME | . | example.com | 300
CNAME | www | example.com | 300
それが伝播するのを一晩待った後、wwwはまだアクセスでき、リダイレクトしません。
別のA
レコードを作成できません。CNAME
のみです。それは言う:
Unable to add record: A CNAME record is not allowed to coexist with any other data.
[〜#〜] nginx [〜#〜]
私は このガイド に従い、sites-available configを使用してリダイレクトを試みました。 HttpとHttpsは機能しますが、wwwは非wwwにリダイレクトしません。
server {
# Redirect http to https
listen 80;
return 301 https://$Host$request_uri;
}
server {
# Redirect www to non-www
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
listen 443 ssl default_server;
ssl on;
ssl_certificate /etc/nginx/ssl/cert_chain.crt;
ssl_certificate_key /etc/nginx/ssl/example_com.key;
ssl_protocols TLSv1.1 TLSv1.2;
server_name example.com;
...
DNSはwwwサイトを非wwwにリダイレクトできません。 DNSの唯一の目的は、A
、AAAA
、またはCNAME
レコードを使用して、wwwと非wwwの両方をサーバーのIPアドレスにポイントすることです(ほとんど違いはありません)。 nginx
構成は、wwwから非wwwへのリダイレクトを実行する責任があります。
2番目のサーバーブロックはwwwからwww以外にリダイレクトすることを目的としていますが、現在は(ポート80で)http
接続のみを処理します。
デフォルトのサーバーを移動し、それを使用してすべてを目的のドメイン名にリダイレクトできます。例えば:
ssl_certificate /etc/nginx/ssl/cert_chain.crt;
ssl_certificate_key /etc/nginx/ssl/example_com.key;
server {
listen 80 default_server;
listen 443 ssl default_server;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
...
}
Wwwとwww以外のドメイン名の両方に共通の証明書があると仮定すると、ssl_
ディレクティブを外部ブロックに挿入し、それらを両方のサーバーブロックに継承できるようにします(上記を参照)。
詳細は このドキュメント を参照してください。
redirect.center を使用して、方程式からNGINXを削除できます。
設定が簡単でシンプルです。DNSレコードを次のように設定します。
CNAME | www | example.com.opts-uri.redirect.center
それだけ。
Nginx構成ファイルにnewサーバーブロックを追加することで、wwwを非wwwに誘導できます。
ステップ1:nginx設定ファイルに次のサーバーブロックを追加します。
server {
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
ステップ2:nginxを再起動します。
Sudo systemctl restart nginx