htaccess ファイルを変更する権限がありません。www ドメイン名をルート ドメインに転送するにはどうすればよいですか。
元:
www.bulkanswer.com to bulkanswer.com
www.example.com
すべてのリクエストをにリダイレクトするexample.com
には、一定量のサーバー構成(.htaccessの変更など)を行う必要があります。通常、次のようなものを使用して、.htaccess(またはhttpd.conf)を介してすべてを実行します。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,QSA]
にリダイレクトさhttp://www.example.com/anything
れhttp://example.com/anything
ます。
PHPでこれを行うことは可能ですが、それを行うには、リダイレクトを処理する特定のPHPファイルにすべての要求を送信するようにサーバーを構成する必要があります。Apacheでは、複雑さの点で上記にいくらか似た構成に加えて、実際のPHPリダイレクトを見ているでしょう。そのPHPファイルにすべてのリクエストを送信すると、おそらくWebサイトも破損します。それでも、あなたのウェブサイトが現在このように設定されていない限り(私は非常に真剣に疑っています)、あなたのインデックスページなど以外のものをリダイレクトするのは難しいでしょう。
必要に応じて PHP でこれを行うこともできますが、可能であれば htaccess ルートの方がはるかに優れています。これは、あなたが求めていることを行うべきいくつかのコードです:
// Check if the current request has www in the server name
if (substr($_SERVER['SERVER_NAME'], 0, 3) === "www") {
// Redirect required so ensure you use a 301
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://example.com" . $_SERVER['REQUEST_URI']);
}
リダイレクトがブラウザーにキャッシュされ、サイトの SEO に関してドメインが競合することによって問題が発生しないように、301 を使用することが非常に重要です。
いくつかの注意: サイトの作成方法によっては、REQUEST_URI を使用するよりも良い方法があるかもしれませんが、これはほとんどの場合に機能する非常に単純なソリューションです。リダイレクトされるフォームの送信に問題がある可能性があります (頭のてっぺんから覚えていません)。そのため、独自の HTML 内のすべてのリンクが常に非 www バージョンを指していることを確認してください。
PHPが使える人ならlocation
headerを設定できます。
$url = 'http://yourdomain.com';
header( 'Location: ' . $url );
たとえば、$_SERVER
var.
注意: ルート ドメインが www にリダイレクトされると、無限ループが発生します。