Avatar billede t43 Nybegynder
28. maj 2008 - 09:58 Der er 10 kommentarer

Apache mod rewrite

Jeg har en apache frontend og en tomcat app server.
På tomcat har jeg deployed en applikation "business".

Hvis en bruger indtaster min http adresse i broweren forwarder jeg brugeren fra apache til business applikationen på tomcat. Den nuværende rewrite rule ser således ud:
RewriteRule ^/$ /business/ [PT]

Dette fungerer sådan set fint nok. Brugeren forwardes til business applikationen hvis der står et forwardslash som det sidste i urlen.

Problemet er at jeg bliver nødt til at have applikationsnavnet "business" med i urlen for at tomcat kan identificere at det er business applikationen den skal køre når jeg submitter forme eller skal bruge links med understrukturer.

altså urler som f.eks:
http://www.noget.dk/business?a=1
http://www.noget.dk/business/testing/urls/

hvor jeg godt kunne tænke at urlen så således ud:
http://www.noget.dk/?a=1
http://www.noget.dk/testing/urls/

giver det mening og.... any bright ideas?
Avatar billede arne_v Ekspert
29. maj 2008 - 03:07 #1
Jeg tror at det nemmeste var at ændre din business app til at have context /.
Avatar billede t43 Nybegynder
29. maj 2008 - 12:28 #2
Hej Arne v

Lidt baggrundsinformation fra server.xml:
<Engine name="appserver" debug="0" defaultHost="business">

Under min <Host> har jeg forsøgt mig med:
<Host name="business"
appBase="/home/dgs/apache-tomcat-6.0.14/webapps"
autoDeploy="true"
deployOnStartup="true"
unpackWARs="true"
deployXML="true"
debug="0">
<Context path="/." docBase="/home/dgs/apache-tomcat/webapps/business" debug="0" reloadable="true" crossContext="true" />
</Host>

Jeg har altså fulgt dit råd og indsat en context nederst i Host tagget. Dette har dog ikke ændret noget. Min rewriterule søger for at jeg kommer videre til applikationen. Men alle andre url's fejler stadig.

Jeg googler lidt videre for at se om man kan bruge et wildcard eller lign. i context elementets path.
Avatar billede t43 Nybegynder
29. maj 2008 - 12:48 #3
Nåja, lige en kommentar mere:

hvis jeg ændrer context elementets path til "/test" som nedenfor
<Context path="/test" docBase="/home/dgs/apache-tomcat/webapps/business" debug="0" reloadable="true" crossContext="true" />

så kan jeg tilgå applikationen via /test, men sættes path til "/." duer det ikke som wildcard.
Avatar billede arne_v Ekspert
29. maj 2008 - 15:07 #4
proev:

path=""
Avatar billede t43 Nybegynder
29. maj 2008 - 16:20 #5
Æv! du kom mig i forkøbet :)
jeg havde faktisk fundet ud af at sætte path=""
Avatar billede t43 Nybegynder
29. maj 2008 - 16:22 #6
Hmm - hvordan tildeler man points?
Avatar billede t43 Nybegynder
29. maj 2008 - 16:24 #7
Arne, hvis du i stedet for en kommentar, bruger "svar", kan jeg tildele dig points
Avatar billede arne_v Ekspert
29. maj 2008 - 17:16 #8
kommer her
Avatar billede arne_v Ekspert
27. juli 2008 - 22:25 #9
så mangler du bare at acceptere svaret
Avatar billede arne_v Ekspert
31. august 2008 - 02:35 #10
?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester