基本的に、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;
}