PHP による WWW から非 WWW へのリダイレクト 質問する

PHP による WWW から非 WWW へのリダイレクト 質問する

基本的に、PHP を使用してすべての www.domain.com リクエストを domain.com にリダイレクトしたいです。

if (substr($_SERVER['SERVER_NAME'], 0, 4) === 'www.')
{
    header('Location: http://' . substr($_SERVER['SERVER_NAME'], 4)); exit();
}

ただし、SO のように要求された URL を維持したい場合があります。たとえば、次のようになります。

http://www.stackoverflow.com/questions/tagged/php?foo=bar

リダイレクト先:

http://stackoverflow.com/questions/tagged/php?foo=bar

ソリューションに頼りたくありませんし、これを実現するためにどの変数を使用すればよいか.htaccessわかりません。また、HTTPS プロトコルを維持することもプラスになります。$_SERVER

これをどうすればいいでしょうか?

ベストアンサー1

これを試して:

if (substr($_SERVER['HTTP_HOST'], 0, 4) === 'www.') {
    header('Location: http'.(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 's':'').'://' . substr($_SERVER['HTTP_HOST'], 4).$_SERVER['REQUEST_URI']);
    exit;
}

おすすめ記事