у нас есть ? в URL-адресе и AJP преобразует его в% 3F - PullRequest
0 голосов
/ 17 сентября 2010

с коннектором Mod_jk это есть в нашем файле / etc / apache2 / sites-available:

RewriteRule /$ /op_ugw/orderportal/home?switchprofile=RecyledPlants [L] Это отлично работает. и www.recycledplants.com доставит вас в нужное место.

Однако на сервере Ubuntu 10.04 мы устанавливаем ajp вместо mod_jk. таким образом, у нас есть

ProxyPass / ajp: //10.1.1.1: 8009 / op_ugw / orderportal / home? Switchprofile = RecyledPlants ProxyPassReverse / ajp: //10.1.1.1: 8009 / op_ugw / orderportal / home? Switchprofile = RecyledPlants

Когда я пытаюсь добраться до recycledplants.randrinc.com (URL для тестирования), я получаю ошибку 404 и

описание: запрошенный ресурс (/ op_ugw / orderportal / home% 3Fswitchprofile = RecyledPlants) недоступен.

? был преобразован в% 3F.

Есть ли способ остановить Apache от преобразования? % 3F.

Надеюсь, это имеет смысл. Спасибо Ann

Ответы [ 2 ]

0 голосов
/ 29 декабря 2010

Если я правильно понимаю ваш вопрос: Добавьте "NE" в конец RewriteRule .

Этот флаг не позволяет mod_rewrite применять обычные правила экранирования URI к результатупереписать.Обычно специальные символы (такие как «%», «$», «;» и т. Д.) Экранируются в их эквиваленты в шестнадцатеричном коде («% 25», «% 24» и «% 3B» соответственно);Этот флаг предотвращает это.

RewriteRule \/$ /op_ugw/orderportal/home?switchprofile=RecyledPlants [L,NE] 

Подробнее о том, как это работает, вы можете прочитать в документации apache mod_rewrite: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

0 голосов
/ 18 сентября 2010

получил несколько указателей на Java Ranch и смог понять, как это сделать. Вот что я сделал: Хорошо, вот что работает:

/ etc / apache2 / sites-available файл без parms / redirect (только верхняя часть файла): NameVirtualHost 10.1.1.1:80</p> <p> ServerAdmin webmaster@localhost</p> <pre><code> ServerName ugw.randrinc.com DocumentRoot /var/www/ugw/ ProxyPreserveHost On ProxyPass / ajp://10.1.1.1:8009/op_ugw/orderportal/home ProxyPassReverse / ajp://10.1.1.1:8009/op_ugw/orderportal/home <Proxy *> Order deny,allow Allow from all </Proxy> <Directory /> Options FollowSymLinks AllowOverride None </Directory> etc...etc... etc..

Вот как это выглядит, когда вам нужно перенаправить, в моем случае я передаю parms, и приложение выполняет перенаправление: NameVirtualHost 10.1.1.1:80</p> <p> ServerAdmin webmaster@localhost</p> <pre><code> ServerName recycledplants.randrinc.com DocumentRoot /var/www/recycledplants/ ProxyPreserveHost On ProxyPass / ajp://10.1.1.1:8009 ProxyPassReverse / ajp://10.1.1.1:8009 <Proxy *> Order deny,allow Allow from all RewriteEngine On RewriteRule \/$ /op_ugw/orderportal/home?switchprofile=RecyledPlants [L] </Proxy> <Directory /> Options FollowSymLinks AllowOverride None </Directory> etc....etc....etc

Надеется, что это помогает кому-то. Также я работаю на Ubuntu 10.04 на облачном сервере Amazon. Возникли небольшие проблемы с форматированием, но я думаю, что вы можете читать. Ann

...