我想将来自 URL 主机 www.hostname1.com(包括所有子目录 www.hostname1.com/....)的所有请求重定向到具有不同主机的不同 URL www.newHost.com。我已经在 DNS 中进行了更改,但我想知道我应该在托管 www.newHost.com 的服务器上进行哪些更改,以便重定向并在浏览器上显示新的 URL。
我查看了 IIS。在 www.newHost.com 的配置下,我可以将 www.hostname1.com 绑定到与 www.newHost.com 相同的 IP,但这仅适用于 www.hostname1.com 的主页,并且不会重写浏览器窗口中的 url 地址。
请告知如何进行此更改。
答案1
在新服务器上,在 www.hostname1.com 站点(您在新服务器上创建的用于在 DNS 更改后捕获到旧站点的流量的站点)下,将其用作您的整个 web.config 文件。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="301 redirect entire site" stopProcessing="true">
<match url="^(.*)$" />
<action type="Redirect" redirectType="Permanent" url="http://www.newhost.com/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
这将创建一个重写规则,抓取 URL 的整个内容(在http://www.hostname1.com/),则将“http://www.newhost.com/“在它前面加上任何查询字符串,然后将浏览器重定向到该 URL。这是一个 301 重定向(永久的),所以它应该是 SEO 安全的,这样 Google 就不会惩罚你的排名。我还没有测试过这个,但我认为它应该对你有用。
答案2
您可以在 IIS 根目录中创建一个 htaccess 文件并实现此重定向
IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR] RewriteCond %{HTTP_HOST} ^www.olddomain.com$ RewriteRule (.*)$http://www.newdomain.com/1 美元 [右=301,左]
这会将您的所有流量引导至新域名。