J'essaie de supprimer le nom de contexte de l'URL de mon serveur.
URL actuelle - http://www.domainname.com/MyApp/
Ce que je dois faire est de le rendre disponible sur - www.domainname.com/
Donc, il ne va héberger qu'une seule application principale et doit être affiché lorsque nous ouvrons www.domainname.com/
sur le navigateur.
J'ai déjà essayé plusieurs choses comme ci-dessous -
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(Context/.*)$
RewriteRule ^/(.*)$ /Context/$1 [P,L]
OR
redirect permanent /MyApp/ abcd://domainname.com
OR
Utiliser JKMount -
JkMount /MyApp/* ajp13
JkMount /MyApp* ajp13
OR
Déployez le fichier war sur ROOT de Tomcat et créez des modifications pertinentes dans les fichiers Web et server.xml. Tout cela ne fonctionne pas et je continue à avoir une erreur intenal. J'ai besoin d'un moyen de couper l'URL de Tomcat pour faire court.
En supposant que http://www.domainname.com/MyApp/
fonctionne comme il est ... ne devriez-vous pas pouvoir simplement utiliser votre RewriteRule final? Il suffit de déposer le RewriteCond et le drapeau "P".
Ou si vous allez utiliser mod_rewrite pour créer le proxy avec l'indicateur 'P', n'avez-vous pas besoin d'utiliser l'URL complète dans RewriteRule? Quelque chose comme http://tomcatserver:tomcatport/Context/$1
Vous devriez arrêter d'utiliser mod_jk et commencer à utiliser mod_proxy. J'exécute Tomcat sur le port 8080. L'application Web qui alimente mon site a une URL interne telle que http://localhost:8080/mysite
J'utilise mod proxy pour le rendre disponible sur http://mysite.example.com/
J'utilise un pare-feu pour garantir que seul le port 80 est accessible. du monde extérieur. mod_proxy est beaucoup plus flexible que mod_jk. Tomcat rend l'application disponible à la fois sur le port HTTP 8080 et sur les ports utilisés par défaut par mod_jk, de sorte que vous n'aurez probablement même pas à modifier vos paramètres Tomcat.
Ma configuration Apache ressemble à ceci pour ce site
<VirtualHost *:*>
Servername mysite.example.com
ProxyRequests Off
ProxyPass / http://localhost:8080/mysite/
ProxyPassReverseCookiePath /mysite /
ProxyPassReverseCookieDomain localhost mysite.example.com
</VirtualHost>
Le cookie est conçu pour que les cookies de session soient correctement traduits par mod_proxy. Vous pouvez également demander à mod_proxy de réécrire les liens si vous en avez besoin. Dans mon cas, mon application Web gère cela.