使用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(测试网址)时出现404错误并
描述:请求的资源(/ op_ugw / orderportal / home%3Fswitchprofile = RecyledPlants)不可用。
?已转换为%3F。
有没有办法阻止Apache转换?到%3F。
希望这是有道理的。 谢谢 安
答案 0 :(得分:0)
在Java Ranch上得到了一些指示,并且能够弄清楚如何。这是我做的: 好的,这是有效的:
/ etc / apache2 / sites-available文件没有parms / redirect(只是文件的顶部):
NameVirtualHost 10.1.1.1:80
ServerAdmin webmaster@localhost
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..
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
ServerAdmin webmaster@localhost
希望这有助于某人。此外,我在亚马逊云服务器上运行Ubuntu 10.04。
格式化有点麻烦,但我认为你可以阅读。
安 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
答案 1 :(得分:0)
如果我理解你的问题:在RewriteRule的末尾添加“NE”。
此标志阻止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