É possível fazer um redirecionamento 301 E redirecionar para o recurso solicitado?

1

Para um dos nossos projetos, estamos fazendo um rebranding do nome do site, logotipo, etc ...

Assim, precisamos que 301 Moved Permenantly redirecione todos os usuários do domínio antigo para o novo domínio. Com o IIS7, isso é bem simples. Acabamos de criar um novo site que redireciona todo o tráfego para um domínio com cabeçalho de host ... para o novo.

Mas isso perde o recurso de destino original.

eg.
Old Domain: www.OldDomain.com
New Domain: www.NewDomain.com

User: www.OldDomain.com/user/PureKrome  -> 301 --> www.newDomain.com  

Observe como está indo para o novo domínio, MAS não para / user / PureKrome?

Como posso fazer isso para que ele vá para o novo domínio e mantenha a solicitação de recurso original? Eu estou supondo que o URL-ReWriter para IIS7 possa ajudar?

Além disso, o que acontece se eu quiser fazer isso ...

CurrentDomain 1: Domain.com
CorrectDomain 1: www.Domain.com
CurrentDomain 2: AnotherDomain.com
CorrectDomain 2: www.AnotherDomain.com

Também é possível tê-los no mesmo site do IIS? Portanto, qualquer URL para domain.com será 301 para www.domain.com

Neste exato momento, estou criando dois sites do IIS, com um 301 codificado (o que também significa que eu também perdi a solicitação de recurso original).

Ajuda!

    
por Pure.Krome 19.10.2009 / 06:33

3 respostas

2

O Blog da RuslanY tem um ótimo post que descreve como fazer isso com o rewriter do IIS.

Vou citar sua dica # 3: -

Very often you may have one IIS web site that uses several different host names. The most common example is when a site can be accessed via http://www.yoursitename.com and via http://yoursitename.com. Or, perhaps, you have recently changed you domain name from oldsitename.com to newsitename.com and you want your visitors to use new domain name when bookmarking links to your site. A very simple redirect rule will take care of that: view plaincopy to clipboardprint?

<rule name="Canonical Host Name" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" negate="true" pattern="^ruslany\.net$" />
    </conditions>
    <action type="Redirect" url="http://ruslany.net/{R:1}" 
            redirectType="Permanent" />
</rule>

To see an example of how that works try browsing to http://www.ruslany.net/2008/10/aspnet-postbacks-and-url-rewriting/. You will see in the browser’s address bar that “www” is removed from the domain name.

    
por 27.10.2009 / 00:44
1

Este é um problema de reescrita de URLs.
Se você está no Apache, você pode colocar regras no arquivo .htaccess. Os usuários do IIS precisam adquirir e instalar (embora haja uma versão de avaliação que permita executar um site por instância do IIS) o módulo ISAPI ISAPIRewrite, que interpreta os arquivos .htaccess.

    
por 24.10.2009 / 08:07
0

Na verdade, você precisa de um módulo http para isso. Você pode ler o URL no módulo http e manter o caminho, apenas alterar o nome do host se ele for diferente do nome do novo domínio ou não começar com www.

Deixe-me saber se você deseja mais detalhes ou o código para fazer isso.

    
por 24.10.2009 / 05:26