次の2つのドメインがあるとしましょう:
example.com.uy
example.uy
私の目標は、301 [リダイレクト]を使用してSEOのベストプラクティスに従って適切なドメインのフォワードを設定し、ユーザーがwww.example.com.uy
から来て常にexample.uy
でサイトを閲覧するように強制することです/cat/item/1?qwe=rty
のようなURLの残りの部分。
私はCloudFlareを無料パッケージで使用していますが、ページルールは必要なもののようですが、転送を適切に設定する方法がわかりません。おそらく、ドメインレジストラーパネルでも何かを構成する必要があります。
私が達成したいリダイレクトの種類の例は次のとおりです:
http://example.uy/cat/item/1?qwe=rty
> http://www.example.com.uy/cat/item/1?qwe=rty
サブドメインの例:
http://shop.example.uy/cat/item/1?qwe=rty
> http://shop.example.com.uy/cat/item/1?qwe=rty
私が試してみました:
example.uy/*
http://www.example.com.uy/$1
302 Temporary
残念ながら、これは成功しません。私の.uy
ドメインにはまだ設定がなく、単に.com.uy
に以前使用したのと同じデータを使用すべきかどうかわからないからです。
私が行う方法は、2つのドメインをcloudflareに追加し、それを通常どおりホスティングに制限することです。ホスティングcpanelで、両方のドメインを追加し、このサイトがメインサイトに永続的にリダイレクトされるようにcpanelで設定します。
ページルールを使用して、または少なくとも無料プランでそれを行うことはできないと思います。ただし、htaccess/vhostサーバー側のルールを使用できます(すでにhtaccessにあるかどうかに応じて、RewriteEngine On
を含める必要があるかどうかが必要です)
RewriteEngine On
RewriteCond %{HTTP_Host} ^(www\.)?example\.uy$ [NC]
RewriteRule ^(.*)$ "https://www\.example\.com\.uy/$1" [R=301,L]
スクリプト側で行うこともできます。PHPでの方法は次のとおりです。
header($_SERVER['SERVER_PROTOCOL'] . ' 301 Moved Permanently');
header('Location: https://' . str_replace(array('&', "\n", "\r"), array('&', '', ''), 'www.example.uy' . $_SERVER['REQUEST_URI']));