Mam regułę domain.com/index.php i przyjazną regułę URL do przekierowania domain.com/index.php?s=? upraszanie. Korzystam z serwera internetowego IIS z dodatkiem do przepisywania adresów URL.
Powyżej działa dobrze. Istnieje jednak problem z żądaniami do katalogu administratora ...
Mam także domenę.com/admin/cloud/index.php, który czasami jest potrzebny do uzyskania lub wysłania danych (przez Ajax). Gdy reguła jest aktywna, dane nie są dostępne, a po usunięciu powyższej reguły dane są dostępne.
Jak mogę użyć powyższej reguły URL i wykluczyć wszystkie inne żądania wewnątrz (lub do) domeny.com/admin/ ..?
To jest mój obecny zestaw reguł:
<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>
Próbowałem wielu sposobów, w tym informacji o ścieżce ... ale bez powodzenia. Może ktoś może dać podpowiedź?
Dzięki!
Odpowiedzi:
22 dla odpowiedzi nr 1Spojrzeć tutaj możesz dodać tę regułę, więc gdy żądanie, którego nie chcesz przetwarzać, przychodzi, możesz je zignorować i przerwać przetwarzanie.
Powinien być umieszczony jako pierwszy, aby ta reguła była wykonywana przed dwoma pozostałymi.
<rule name="block" stopProcessing="true">
<match url="^admin/cloud/index.php$" />
<action type="None" />
</rule>