如何将我的www域名转发到根域

时间:2012-06-21 11:55:28

标签: php web

我无权修改htaccess文件。我现在可以做什么将我的www域名转发到根域。

前:

www.bulkanswer.com to bulkanswer.com

3 个答案:

答案 0 :(得分:1)

为了将所有请求重定向到www.example.comexample.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文件可能也会破坏您的网站。尽管如此,除非您的网站目前设置得像这样(我非常怀疑),否则很难重定向除索引页面之外的任何内容等。

答案 1 :(得分:0)

如果您可以使用PHP,则可以设置location header

$url = 'http://yourdomain.com';
header( 'Location: ' . $url );

你想在条件中执行此操作,检查非www通过,例如$_SERVER var。

注意:如果您的根域重定向到www,则会导致无限循环。

答案 2 :(得分:0)

可以在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']);
}

使用301这一点非常重要,以便重定向缓存在浏览器中,并且不会因为您的网站搜索引擎优化而产生任何问题。

一些注意事项:根据您的网站创建方式,可能有比使用REQUEST_URI更好的方法,但这是一个非常简单的解决方案,应该适用于大多数情况。发送表单然后重定向可能会出现问题(无法记住我的头脑),因此请确保您自己的HTML中的所有链接始终指向非www版本。