Я видел несколько сообщений о перенаправлении доменов на GoDaddy, но ничего об отдельных файлах.
В моем случае я использую общий хост Windows, поэтому я не могу использовать какие-либо инструменты управления IIS. Я надеюсь, что смогу сделать что-то эквивалентное Apache .htaccess
файл для настройки перенаправления для отдельных файлов.
В качестве альтернативы, есть ли HTML-документ, который я могу вернуть, который выполняет ту же функцию, что и перенаправление HTTP 301?
Я должен указать, что я использую простой HTML, обслуживаемый с диска, поэтому я не могу вернуть пользовательский код ответа HTTP, как я мог бы, скажем, PHP, ASP.NET, ASP и т. Д.
Документация GoDaddy не распространяется на эту ситуацию.
Так user78940 ответ показывает жизнеспособный метод (поддержка GoDaddy <rewrite>
в Web.config
), однако, несмотря на то, что я прочитал несколько разных руководств по этому элементу конфигурации, я все еще не могу заставить его работать.
Во-первых, я использую виртуальный хостинг, а значит, у меня есть физический структура папок:
root < -- used for primarysite.com
- drewnoakes.com < -- nested virtual hosting
- someothersite.com < -- nested virtual hosting
Здесь есть три сайта. Корень для primarysite.com
, подкаталоги для сайтов с соответствующими названиями. К сожалению, именно так нужно поступать с GoDaddy. У вас всегда есть один первичный сайт, а затем он там гнездится.
К сожалению, установка GoDaddy дает перенаправление, если вы не помещаете в конце URL-адреса косую черту (для доступа к документу по умолчанию в этой папке), что означает:
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>
Итак, как я могу настроить перенаправления с подстановочными знаками IIS для этого сценария с помощью <rewrite>
элемент конфигурации?
В <meta HTTP-EQUIV="REFRESH"....>
метод вернет ответ 200 (не настоящий ответ перенаправления, как 301/302 / и т. д.).
В панели управления Afaik Go Daddy нет функции для перенаправления только определенных файлов в общие учетные записи Windows.
В общем плане Windows вы можете использовать перезапись URL-адресов IIS 7 с помощью файла web.config, помещенного в корень каталога вашего веб-сайта. Вам нужно будет подтвердить, что ваша конкретная учетная запись хостинга находится на сервере 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/
Другой Web.config
подход (который работает и с виртуальным хостингом GoDaddy в Windows) заключается в использовании Элемент конфигурации 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>
Вы можете сделать это с помощью перенаправления html:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.somedomain.com/somefile.pl">