GoDaddyのカスタムドメインでセットアップしたGoogle App Engine Java Webアプリがあります。現在、このサイトにはdomain.comおよびwww.domain.comでアクセスできます。誰かがwww.domain.comの代わりにdomain.comにアクセスしようとするたびに301リダイレクトを発生させようとしています。 GoDaddyを介したドメイン転送を使用しようとしましたが、成功しませんでした。どうすればこの目標を達成できますか?
これが私のGoogle App Engineのセットアップです。これらすべてのレコードをGoDaddy DNSマネージャーに追加しました。
更新:これを行うには3つの方法があります。
マップするドメインとサブドメインを指定します。
注:ネイキッドドメインとwwwサブドメインは、フォームに事前に入力されています。 example.comなどのネイキッドドメインは http://example.com にマッピングされます。 wwwなどのサブドメインは http://www.example.com にマッピングされます。 [マッピングの送信]をクリックして、目的のマッピングを作成します。 [新しいカスタムドメインの追加]フォームの最後の手順で、リストに表示されているリソースレコードとそのタイプおよび正規名を確認します。
HTACCESS
あなたが彼らのApacheサーバーにいると仮定して、あなたはこれをあなたの.htaccessファイルに追加したいと思います。これは両方のためです、どちらかを選択してください。サンプルをドメイン名に置き換えます。
#Force www:
RewriteEngine on
RewriteCond %{HTTP_Host} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
#Force non-www:
RewriteEngine on
RewriteCond %{HTTP_Host} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
Googleはhtaccessファイルをサポートしていません。彼らは異なる mod rewrite rule を持つapp.yamlファイルをサポートしますが、私が知っている限り、それは1つのCNAMEにのみ適用されます。 example.comには適用されません。
CNAMEでワイルドカード*
を使用できます。これにより、すべてのサブドメインが適切なドメイン名にリダイレクトされます。たとえば、人々がexample.com/directory/にアクセスすると、自動的にwww.example.com/directory/にリダイレクトされます。ワイルドカードの主な欠点は、すべてのサブドメインに適用されることで、サブドメインに画像やブログなどのコンテンツを追加できないことを意味します。たとえば、blog.example.comはwww.example.comとimagesにリダイレクトします.example.com/puppy.jpgはwww.example.com/puppy.jpgにリダイレクトします(404エラーを引き起こす可能性があります)。しかし、サブドメインに何も配置していない場合、ワイルドカードが問題を解決します。
また、example.comをwww.example.comにリダイレクトし、他のサブディレクトリにはリダイレクトしない場合は、 meta refresh tag を使用できます。これはクライアント側のソリューションです。または、ネイキッドドメインsomwehere(Github Pages、Firebaseは無料のソリューション)をホストし、301リダイレクトを実行できます。