Pergunta

Olá a todos, eu tenho uma pergunta sobre IIS7 reescrita.

Eu estou querendo saber se existe uma maneira de conjunto condições para re escrita urls. Eu estou querendo reescrever:

http://www.domain.com/user.aspx?id=username

para se tornar

http://www.domain.com/username/

Eu também tenho

http://www.domain.com/article.aspx http://www.domain.com/login.aspx

e eu quero aqueles para se tornar

http://www.domain.com/article/ http://www.domain.com/login/

O problema que estou tendo é que se eu set as reescritas para o nome de usuário reescritas para artigo e login pausa.

Eu preciso excluir algum modo os de o nome de usuário reescrever para que eles podem ser manipulados por conta própria.

Aqui está o meu código atual, im reescrita os nomes de usuário para / user / nome de usuário no momento:

<rewrite>
  <rules>
    <rule name="Rewrite user accounts2">
      <match url="user/([_0-9a-z-]+)"/>
      <action type="Rewrite" url="user.aspx?id={R:1}"/>
    </rule>
    <rule name="Rewrite user accounts">
      <match url="user/([_0-9a-z-]+)/"/>
      <action type="Rewrite" url="user.aspx?id={R:1}"/>
    </rule>
  </rules>
</rewrite>
Foi útil?

Solução

Se você adicionar a regra artigo / login no topo e adicionar stopProcessing = "true" para ele, então você não tem que condições de uso.

<rewrite>
  <rules>
    <rule name="Login" stopProcessing="true">
      <match url="login/?"/>
      <action type="Rewrite" url="login.aspx"/>
    </rule>
    <rule name="Article" stopProcessing="true">
      <match url="article/?"/>
      <action type="Rewrite" url="article.aspx"/>
    </rule>
    <rule name="Rewrite user accounts2" stopProcessing="true">
      <match url="user/([_0-9a-z-]+)/?"/>
      <action type="Rewrite" url="user.aspx?id={R:1}"/>
    </rule>
  </rules>
</rewrite>

PS. o questionmark torna o opcional personagem anterior.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top