1

我在一个网站上工作,我有一个看起来像这样的“开发 URL”:

www.example.com.php5-9.dfw1-2.example.com/

现在,在网站启动几周后,至少有一页内容在谷歌上被该 URL 编入索引。

问题:如何重定向来自该测试 URL 的所有请求以重新路由到实际域?

因此,例如,我想要:

www.example.com.php5-9.dfw1-2.example.com/page-name

要去:

www.example.com/page-name

该网站由 WordPress 提供支持并托管在 PHP 服务器上。我已经尝试过 .htaccess ,但没有取得多大成功。

4

2 回答 2

3

考虑到您解决此问题的主要动机是 Google 在测试服务器上为您的网页编制了索引,我认为尝试使用该mod_rewrite功能来保持这些链接处于活动状态有点多余(而且很繁琐)。

相反,我建议使用Google 的网站管理员工具,并在测试位置和生产位置下注册。然后,您应该能够请求删除测试子域下的 URL,并请求抓取生产 URL(从而删除测试链接并用生产链接替换它们)。

于 2010-06-16T16:23:56.640 回答
1

如果www.example.com应该是您服务器上唯一有效的主机名,您可以使用此规则来强制使用此主机名:

RewriteCond %{HTTP_HOST} !^(www\.example\.com|)$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.example.com%{REQUEST_URI} [L,R=301]

否则,请尝试使用此规则仅重定向此特定主机名:

RewriteCond %{HTTP_HOST} =www.example.com.php5-9.dfw1-2.example.com
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.example.com%{REQUEST_URI} [L,R=301]

You might additionally check the request method in REQUEST_METHOD since this rule will match any method (GET as well as POST).

于 2010-06-25T09:07:50.140 回答