如何301redirectGoDaddy共享Windows托pipe计划上的单个文件或目录?

我在GoDaddy上看到了一些关于redirect域的文章,但没有涉及单个文件。

在我的情况下,我使用Windows共享主机,所以我不能使用任何IISpipe理工具。 我所希望的是,我可以做一些等同于Apache的.htaccess文件来configuration单个文件的redirect。

或者,是否有一个HTML文档可以返回,执行与HTTP 301redirect相同的function?

我应该指出,我使用的是从磁盘提供的纯HTML,所以我不能返回一个自定义的HTTP响应代码,因为我可以说PHP,ASP.NET,ASP等。

GoDaddy的文档不包括这种情况。


编辑

所以user78940的答案显示了一个可行的技术(GoDaddy支持Web.config <rewrite> ),但是尽pipe阅读了这个configuration元素的几个不同的教程,我仍然无法使其工作。

首先,我正在使用虚拟主机,这意味着我有这个物理文件夹结构:

 root < -- used for primarysite.com - drewnoakes.com < -- nested virtual hosting - someothersite.com < -- nested virtual hosting 

这里有三个网站。 根目录为primarysite.com ,子目录为相应命名的网站。 这只是你不得不如何与GoDaddy做到这一点。 你总是有一个主要的然后在那里筑巢的地方。

不幸的是,如果您不在URL上放置斜线(以访问该文件夹的默认文档),GoDaddy安装程序会提供redirect,这意味着:

http://drewnoakes.com/code/exif (无尾随斜线)

…被redirect到…

http://drewnoakes.com/drewnoakes.com/code/exif/ (带有斜线)

这意味着Google的索引中都有这两个url。 我想整理这种情况,使前者redirect正确,后者redirect到规范forms,这样我就不会遭受页面排名稀释,我的URL也不那么容易记住的尴尬

我试过这个configuration,但是它以一个无限的301redirect循环结束:

 <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>configuration元素为此场景configurationIIS通配符redirect呢?

<meta HTTP-EQUIV="REFRESH"....>方法将返回200响应(不是像<meta HTTP-EQUIV="REFRESH"....> / etc这样的真正的redirect响应)。

Afaik Go Daddy在他们的控制面板中没有任何function来redirect共享Windows帐户上的某些文件。

在一个共享的Windows计划中,您可以通过将web.config文件放入您的网站目录的根目录来使用IIS 7 URL重写。 您将不得不确认您的特定主机帐户是在IIS 7 +服务器上。 如果是这样,请添加以下web.config文件以执行简单的redirect:

  <?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> 

有关更多详细信息,请参阅“使用重写映射进行redirect”一节: http : //learn.iis.net/page.aspx/469/using-rewrite-maps-in-url-rewrite-module/

你可以用htmlredirect来做到这一点:

 <meta HTTP-EQUIV="REFRESH" content="0; url=http://www.somedomain.com/somefile.pl"> 

另一个Web.config方法(与Windows上的GoDaddy共享托pipe一起使用)是使用httpRedirectconfiguration元素 :

 <?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>