проблема в apache httpd.conf с символом вопросительного знака - PullRequest
2 голосов
/ 07 ноября 2010

В моем файле httpd.conf есть следующая строка

ProxyPass / что-то http://localhost:9080/servlet/StubEndpoint?stub=stub

, система отвечает

Запрошенный ресурс (/ servlet /StubEndpoint% 3Fstub = stub /) недоступен, т.е. заменяет?с% 3F.Как я могу решить эту проблему?Этот вопросительный знак, кажется, заменен на «% 3F», и я получаю обратно 404

Ответы [ 2 ]

2 голосов
/ 07 ноября 2010

Из документации на ProxyPass :

url is a partial URL for the remote server and cannot include a query string.

В вашем примере stub=stub - это строка запроса. Замена% 3F выполняется как часть кодировки URL .

Вы можете быть в состоянии прокси на URL, который затем перенаправляется в конечный пункт назначения (с помощью строки запроса), что-то вроде:

ProxyPass /something http://localhost:9080/proxy
RewriteEngine on
RewriteRule ^/proxy /StubEndpoint?stub=stub

Это должно привести к тому, что любые URL, начинающиеся с / чем-либо, будут возвращать перенаправление на StubEndpoint? Stub = stub. Однако я не проверял это сам.

1 голос
/ 24 сентября 2013

Мне нравится группировка в локации. Мое рабочее решение:

<Location /something>
    RewriteEngine On
    RewriteRule ^ http://localhost:9080/servlet/StubEndpoint?stub=stub [P]
</Location>
...