php强制用户转向www域名的方法
这篇文章主要介绍了php强制用户转向www域名的方法,可实现模拟301重定向的功能,并且针对无法head重定向的情况输出链接,需要的朋友可以参考下
本文实例讲述了php强制用户转向www域名的方法。分享给大家供大家参考。具体分析如下:
有时候网站的www域名和非www域名都能访问网站,但是这样不利于搜索引擎的收录,会分散网页的权重,所以希望用户访问非www的域名时通过301永久重定向到www域名,例如用户访问phpfensi.com会直接转向www.phpfensi.com,本php代码考虑了无法通过head重定向的情况,会在页面上输出链接,让用户点击。
- // Install info.:
- // Copy and paste these lines into your default index.php or
- // the file that get's called if a visitor comes on your
- // website...
- // read the host from the server environment
- $host = $_SERVER["HTTP_HOST"];
- // fix host name - we never now... ;-)
- $host = strtolower($host);
- $host = trim($host);
- // This is important:
- // Webbrowsers like Firefox are doing their request without
- // the port number like "www.phpfensi.com" but some other
- // applications send host names like "www.phpfensi.com:80"
- $host = str_replace(':80', '', $host);
- $host = trim($host);
- // if the host is not starting with www. redirect the
- // user to the same URL but with www :-)
- if ($host != 'www.phpfensi.com'){
- // You an also change the "!=" to "==", if you want to force
- // the user to use the domain name without the www.
- // send status header, so that search engines or other services
- // detect that this is a permanent redirect and not a temporary
- header('HTTP/1.1 301 Moved Permanently');
- // read the URL the user requested:
- $url = isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : '';
- // redirect the user to the new destination:
- header('Location: https://www.phpfensi.com' . $url);
- // Convert "special" chars -- cause we never now... ;-)
- $url = htmlspecialchars($url);
- // "fallback" link, if the browser is not supporting header redirects
- print '<a href="https://www.phpfensi.com' . $url.'">Please click here</a>';
- // stop the script execution here
- exit;
- }
- // If the domain is www.phpfensi.com then go on with your PHP code
- // of with your website...
- // BTW: You need to replace phpfensi.com trough your own domain :-D