URL IIS переписывает параметры строки запроса модуля

Если Вы хотели бы, говорят, вещи под путем http://localhost/static/*, который будет подан от Apache, то можно установить RewriteCond перед правилом получить все, что не имеет URI как / статичным /* и передает на Tomcat через AJP, по существу уезжая / статичный /* один, чтобы быть поданным из DocRoot или Псевдонима, и т.д.

Например:

RewriteCond %{REQUEST_URI} !\/static\/.* [NC]
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L] 

7
задан 24 March 2012 в 15:37
1 ответ

Моим решением было бы использовать для этого условия. Сопоставляя условия с {QUERY_STRING} , вы можете использовать обратные ссылки, чтобы использовать их в URL перенаправления.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions trackAllCaptures="true">
                        <add input="{QUERY_STRING}" pattern="&amp;?(beta=[^&amp;]+)&amp;?" />
                        <add input="{QUERY_STRING}" pattern="&amp;?(gamma=[^&amp;]+)&amp;?" />
                        <add input="{REQUEST_URI}" pattern="^/redirect" negate="true" />
                    </conditions>
                    <action type="Redirect" url="/redirect?{C:1}&amp;{C:2}" appendQueryString="false" redirectType="Found" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Единственная возможная проблема с этим решением может быть (в зависимости от того, что вы хотите) заключается в том, что перенаправление произойдет только в том случае, если в строке запроса присутствуют переменные строки запроса beta и gamma . В противном случае перенаправление не произойдет.

Правило перенаправления соответствует любому URL-адресу ( (. *) ). При необходимости вы можете это изменить. Я также добавил дополнительное условие, чтобы правило не совпадало с самим URL-адресом перенаправления, которое в противном случае привело бы к перенаправлению самого URL-адреса перенаправления.

13
ответ дан 2 December 2019 в 23:25

Теги

Похожие вопросы