Avatar billede mergelspir Seniormester
28. maj 2023 - 18:40 Der er 1 kommentar og
1 løsning

Regulært udtryk Apache vs Tomcat

Hej

Jeg har et regulært udtryk, der fungerer i Apache, men ikke i Tomcat 8
Som jeg har forstået det, så er den en lille forskel, der gør, at man ikke direkte kan kopiere RewriteRules fra .htaccess i Apache til rewrite.config i Tomcat.
I Tomcat SKAL det regulære udtryk omfatte hele URL'en. Men jeg kan ikke se, at det er fejlen.

RewriteRule ^([a-z]{2})/(.*)\.jsp/?$ app/$2.jsp?lang=$1 [QSA]
Virker fint i Apache, men ikke i Tomcat

Eksempler på ønsket funktionalitet:
/da/index.jsp => index.jsp?lang=da
/en/index.jsp => index.jsp?lang=en

Hvad mangler der?!?

Link til Tomcat rewrite:
https://tomcat.apache.org/tomcat-9.0-doc/rewrite.html
Avatar billede arne_v Ekspert
28. maj 2023 - 20:04 #1
Testet med Tomcat 8.5

META-INF/context.xml:

<Context>
    <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
</Context>

WEB-INF/rewrite.config:

RewriteRule ^/([a-z]{2})/(.*)\.jsp$ /$2.jsp?lang=$1

Bemærk at det ikke er copy pastet fra #0 men lidt andereledes. Jeg antog at man styartede med / efter app navn.

http://localhost:8080/test/da/index.jsp virker ligesom http://localhost:8080/test/index.jsp?lang=da
Avatar billede mergelspir Seniormester
28. maj 2023 - 20:42 #2
Ad #1)
Tusinde tak. Det var præcis det, der manglede.

Som jeg skrev:
"I Tomcat SKAL det regulære udtryk omfatte hele URL'en"
Men det er ikke nok at læse det, man skal også kikke ordentlig efter.
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
Kurser inden for grundlæggende programmering

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