Erro de regravação de URL com aplicativos da Web

1

Estou executando um site do ASP.NET 4.0 usando o IIS7 no Windows Server 2008 R2.

O site tem vários aplicativos da Web no domínio principal (~ / site1, ~ / site2, ~ / site3, etc ...). Cada Aplicativo Web é uma instância da mesma pasta de origem do site (D: \ Websites \ MySite), para que você possa acessar o mesmo site em qualquer um dos seguintes URLs:

www.mydomain.com

www.mydomain.com/site1

www.mydomain.com/site2

www.mydomain.com/site3

O mesmo site é retornado a cada vez, mas com um conteúdo ligeiramente diferente, dependendo de qual URL específico é chamado.

Tudo tem funcionado bem durante meses até que me pediram para adicionar algumas otimizações de SEO usando o URL Rewrite. Cada regra de regravação de URL que eu adiciono produz o seguinte erro:

Erro HTTP 500.52 - Erro no módulo de regravação de URL. A página não pode ser exibida porque ocorreu um erro interno no servidor.

Erro de configuração: não é possível adicionar entrada de coleção duplicada do tipo 'rule' com o atributo de chave exclusivo 'name' definido como 'AddTrailingSlashRule1'

Eu li em outro lugar que cercam o < system.webServer > configSection no arquivo web.config com:

<location path="." inheritInChildApplications="false">

corrigirá este problema.

No entanto, embora impeça a exibição da mensagem de erro, ela também impede que as regras de regravação de URL funcionem em qualquer um dos aplicativos da Web (~ / site1, ~ / site2, ~ / site3).

Como posso obter o módulo de regravação de URL para trabalhar com aplicativos da Web?

Obrigado por qualquer ajuda que você possa oferecer.

    
por Nanite 10.01.2013 / 05:22

1 resposta

0

Por exemplo:

nome do arquivo html do www.mydomain.com como main.html

www.mydomain.com/site 1 nome do arquivo como site 1.html ..etc

Etapa 1:         ganhar + tipo R "inetsrv" sem cotação, pressione Enter - > config - > Abra o arquivo applicationHost.config (use o notepad ++)

etapa 2:         Descubra abaixo da linha (aproximadamente o número da linha = 218)

<defaultDocument enabled="true">
            <enter code here'files>
                <add value="Default.htm" />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="index.html" />
                <add value="iisstart.htm" />
                <add value="default.aspx" />

            </files>
        </defaultDocument>

passo 3:         Adicione o nome do arquivo www.mydomain.com

Exemplo

<add value="main.html" />

e salve

etapa 4:         Abra o IIS e vá para o site 1 - > abrir documento padrão - > pressione Adicionar e insira o nome do arquivo do site 1 (site1.html)

etapa 5:

Abra o arquivo web.config e cole as linhas

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
     <location path="site 1">
       <system.webServer>
       <defaultDocument enabled="true">
         <files>
            <clear />
              <add value="site1.html" />
         </files>
        </defaultDocument>
    </system.webServer>
    </location>
 </configuration>

----------------------------------------------- --- e salve

etapa 6:       site 2 mesmo que site 1 (altere o caminho do local como "site 2" e o nome do arquivo html)

Exemplo:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
     <location path="site 1">
       <system.webServer>
       <defaultDocument enabled="true">
         <files>
            <clear />
              <add value="site1.html" />
         </files>
        </defaultDocument>
    </system.webServer>
    </location>
    <location path="site 2">
       <system.webServer>
       <defaultDocument enabled="true">
         <files>
            <clear />
              <add value="site2.html" />
         </files>
        </defaultDocument>
    </system.webServer>
    </location>
  </configuration>
    
por 15.10.2018 / 15:40