我见过一些关于在 GoDaddy 上重定向域名的帖子,但没有看到有关单个文件的帖子。
就我而言,我使用的是 Windows 共享主机,因此无法使用任何 IIS 管理工具。我希望可以做一些与 Apache.htaccess
文件等效的事情来配置单个文件的重定向。
或者,是否有我可以返回的 HTML 文档执行与 HTTP 301 重定向相同的功能?
我应该指出,我正在使用从磁盘提供的纯 HTML,所以我无法返回自定义 HTTP 响应代码,因为我可以使用 PHP、ASP.NET、ASP 等。
GoDaddy 的文档不包括这种情况。
编辑
所以用户78940的回答显示了一种可行的技术(GoDaddy 支持<rewrite>
)Web.config
,但是尽管阅读了关于此配置元素的几个不同的教程,我仍然无法使其工作。
首先,我使用虚拟主机,这意味着我有这个身体的文件夹结构:
root < -- used for primarysite.com
- drewnoakes.com < -- nested virtual hosting
- someothersite.com < -- nested virtual hosting
这里有三个网站。根目录是primarysite.com
,子目录是相应名称的网站。不幸的是,这就是您在 GoDaddy 上必须做的事情。您总是有一个主目录,然后在那里嵌套网站。
不幸的是,如果您没有在 URL 后面加上斜杠(以访问该文件夹的默认文档),GoDaddy 设置会进行重定向,这意味着:
http://drewnoakes.com/code/exif (无尾部斜杠)
...重定向至...
http://drewnoakes.com/drewnoakes.com/code/exif/ (带尾部斜杠)
这意味着 Google 的索引中包含这两个 URL。我想整理一下这种情况,让前一个重定向正确,让后者重定向到规范格式,这样我的页面排名就不会降低,我的 URL 也不会那么尴尬,更容易记住。
我尝试了这个配置,但最终出现了无限的 301 重定向循环:
<rewrite>
<rewriteMaps>
<rewriteMap name="StaticRedirects">
<add key="/drewnoakes.com/code/exif/" value="/code/exif/" />
</rewriteMap>
</rewriteMaps>
<rules>
<rule name="RedirectRule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{StaticRedirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="False" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
那么,如何使用<rewrite>
配置元素为这种场景配置 IIS 通配符重定向?
答案1
该<meta HTTP-EQUIV="REFRESH"....>
方法将返回 200 响应(而不是像 301/302 等的真正的重定向响应)。
据我所知,Go Daddy 的控制面板中没有用于仅重定向共享 Windows 帐户上的某些文件的功能。
在共享 Windows 计划中,您可以通过放置在网站目录根目录中的 web.config 文件使用 IIS 7 URL 重写。您必须确认您的特定托管帐户位于 IIS 7+ 服务器上。如果是这样,请添加以下 web.config 文件以执行简单重定向:
<?xml version="1.0"?>
<configuration>
<system.webServer>
<rewrite>
<rewriteMaps>
<rewriteMap name="StaticRedirects">
<add key="/somedir/old-page.html" value="/otherdir/new-page.html" />
</rewriteMap>
</rewriteMaps>
<rules>
<rule name="RedirectRule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{StaticRedirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="http://www.somedomain.com{C:1}" appendQueryString="False" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
有关更多详细信息,您可以参阅此处的“使用重写映射进行重定向”部分: http://learn.iis.net/page.aspx/469/using-rewrite-maps-in-url-rewrite-module/
答案2
您可以使用 html 重定向来做到这一点:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.somedomain.com/somefile.pl">
答案3
另一种Web.config
方法(也适用于 Windows 上的 GoDaddy 共享主机)是使用httpRedirect 配置元素:
<?xml version="1.0"?>
<configuration>
<system.webServer>
<httpRedirect enabled="true" exactDestination="true"
httpResponseStatus="Permanent">
<add wildcard="*from/path" destination="/to/path/" />
</httpRedirect>
</system.webServer>
</configuration>