ISAPI_Rewrite на 301 перенаправить старый домен на новый домен с ASP.NET4 - PullRequest
0 голосов
/ 07 марта 2012

У меня есть два идентичных веб-сайта по разным URL:

http://www.oldsite.co.uk и http://www.newsite.co.uk. Я хочу 301 перенаправить все запросы со старого сайта на новый сайт для каждого видарасширение (например, «index.htm», «images / image.jpg», «directory / subdirectory /» и т. д.).Все ссылки на любой тип файла / документа / пути в старом домене должны быть направлены в одно и то же место в новом домене.

На сайтах работает система управления контентом, использующая .NET4.

До сих пор я пробовал это двумя способами: во-первых, установив постоянное перенаправление в IIS.Это работает до некоторой степени, но дает мне новый URL-адрес, подобный следующему:

http://www.newsite.co.ukeurl.axd/5e42bf571e13754bbed8710d 2d377a5d /

Все, что я смог выяснить в отношении 'eurl.Дело в том, что это вызвано тем, что платформа ASP.NET4 каким-то образом перехватывает запрос во время перенаправления.Единственные решения, которые я нашел, включали бы отключение asp.net 4 (что не подходит, так как CMS работает на этом) или выполнение какого-либо взлома реестра, чего я действительно не хочу делать (имея ввидудругие домены на этом сервере).

Другой вариант использует ISAPI_Rewrite.Я пробовал это:

RewriteRule (.+) http://www.newsite.co.uk$1 [R=301,L] 

Но это также дает ту же проблему с материалом eurl.axd.Итак, я попробовал это, что удаляет материал eurl.axd, но, кажется, работает только для домашней страницы сайта - никаких других страниц или ресурсов:

RewriteRule (.*)eurl.axd/.* http://www.newsite.co.uk/$1 [R=301,L]

Когда я запускаю это, ничего вжурнал ошибок, но журнал перезаписи показывает, что правило не работает должным образом, например, попытка доступа к 'http://www.oldsite.co.uk/technical.aspx' просто загружает эту страницу в браузер (без перенаправления) и выводит этот журнал:

(2) init rewrite engine with requested uri /technical.aspx 
(1) Htaccess process request C:\Program Files\Helicon\ISAPI_Rewrite3\httpd.conf 
(1) Htaccess process request c:\inetpub\vhosts\oldsite.co.uk\httpdocs\.htaccess 
(3) applying pattern '(.*)eurl.axd/.*' to uri 'technical.aspx'

Кто-нибудь знает, как изменить это правило так, чтобы оно перенаправляло все ресурсы со старого на новый домен?

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Создайте новый пустой веб-сайт в IIS, добавьте .htaccess с правилом перенаправления на этот веб-сайт, а затем укажите www.oldsite.co.uk на этот сайт. Таким образом, ваша .NET4 CMS не будет выполняться при запросах к старому сайту и не сможет изменять URL-адреса до того, как они будут перенаправлены.

0 голосов
/ 11 марта 2012

Спасибо, ребята. В итоге я решил эту проблему, удалив все файлы из старого домена и удалив все зависимости от него в ASP.NET4 (изменив пул приложений на тот, который не использует .NET4 и т. Д.), А затем просто установив простое постоянное перенаправление IIS. Так что я вообще не стал использовать ISAPI_Rewrite - IIS отлично с этим справился.

Итак, все, что находится в моем старом домене, указывает на новый домен, что идеально.

Спасибо за ваши указатели, было интересно посмотреть дальше на IIS, что я делаю не очень часто.

...