Eu tenho um domínio.com/index.php e uma regra de URL amigável para redirecionar domain.com/index.php?s=? solicitações de. Eu uso o servidor web IIS com o complemento de reescrita de URL.
Acima funciona bem. No entanto, há um problema com solicitações para o diretório admin ...
Eu também tenho domain.com/admin/cloud/index.php, que às vezes é necessário para obter ou enviar dados (via Ajax). Quando a regra está ativa, os dados não estão disponíveis; quando eu excluo a regra acima, os dados ficam disponíveis.
Como posso usar a regra de URL acima e excluir todas as outras solicitações dentro de (ou para) domain.com/admin/ ..?
Este é o meu conjunto de regras atual:
<rule name="RedirectUserFriendlyURL1" stopProcessing="true">
<match url="^index.php$" />
<conditions>
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
<add input="{QUERY_STRING}" pattern="^s=([^=&]+)$" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^([^/]+)/?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?s={R:1}" />
</rule>
Eu tentei de várias maneiras, incluindo informações sobre o caminho ... mas sem sucesso. Talvez alguém possa dar uma dica?
Obrigado!
Respostas:
22 para resposta № 1Dando uma olhada Aqui você pode adicionar essa regra para que, quando uma solicitação que você não deseja processar, possa ignorá-la e interromper o processamento.
Ele deve ser colocado primeiro para que essa regra seja executada antes das outras duas.
<rule name="block" stopProcessing="true">
<match url="^admin/cloud/index.php$" />
<action type="None" />
</rule>