Wie verwenden von mod_rewrite mit Apache -> mod_jk -> tomcat-setup?
Bezug auf einige meiner früheren Fragen.
Ich habe jetzt ein setup das mir Recht gut gefällt;
Apache httpd lauscht auf port 80 akzeptieren, http-und https-verbindungen.
Mehrere Tomcat-Instanzen auf verschiedene AJP-ports.
Mod_Jk ist das senden von verschiedenen url-Anfragen auf die verschiedenen tomcat Instanzen;
www.mydomain.com/demo -> tomcat:8101
www.mydomain.com/test -> tomcat:8102
www.mydomain.com/ -> tomcat:8100
Erreicht wird dies mit der folgenden Konfiguration in httpd.conf (oder sub-Dateien enthalten);
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
NameVirtualHost *:80
<VirtualHost *:80>
JkMount /demo* demoTomcat (workers.properties not shown)
JkMount /test* testTomcat
JkMount /* rootTomcat
</VirtualHost>
Und das funktioniert alles Super. Ich habe auch SSL-setup und läuft für https-verbindungen mit einer ähnlichen VirtualHost-tag;
<VirtualHost _default_:443>
JkMount /demo* demoTomcat
JkMount /test* testTomcat
JkMount /* rootTomcat
... SSL Stuff follows ....
Was ich jetzt bin, dass Problem ist, dass mein SSL-Zertifikat nur für www.mydomain.com und NICHT mydomain.com.
Ich habe empfohlen, um die Folgen mod_rewrite Aufrufe;
Options +FollowSymlinks
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [PT,L]
Ich habe diese vor und nach dem mod_jk-Regeln in die httpd.conf-Datei. Der Apache war auf den ersten beschweren sich, dass die RewriteEngine wurde ein Ungültiger Befehl, aber das ging Weg, wenn ich erinnerte mich an den LoadModule Befehl erste 🙂 Jetzt Apache neu gestartet, alles wunderbar, der server startet und nimmt Anfragen und alles funktioniert so, wie es zu verwenden ... aber das ist es ja gerade, diese mod_rewrite-Befehle erscheinen keine Wirkung haben?
Tippe ich http://mydomain.com
in den browser, bekomme ich nur meine website als normal. Die url scheint nicht zu ändern zu http://www.mydomain.com
und wenn ich starten, um Zugriff auf die gesicherten Bereiche, die ich bekomme Warnungen, dass mydomain.com
ist NICHT gesichert, und dient mir ein cert von einer anderen website aufgerufen www.mydomain.com
(warum ist das ein Problem und kann es nicht nur verwenden eine gewisse Logik zu erkennen, es ist die gleiche Website, ich weiß es nicht!).
Bin ich, platzieren die mod_rewrite-Regeln in der falschen Stelle? Ich habe gelesen, dass es funktionieren sollte, die umschreiben sollten, ändern Sie die url in www. und dann passieren, um die mod_jk Zeug für irgendetwas weiter?
InformationsquelleAutor Nick Foote | 2011-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ort dieses snippet Recht nach der letzten jkmount Linie in deiner apache config:
Was diese Regel tut, ist WENN Schema https-und http-host ist NICHT
www.mydaomain.com
DANN redirect-Anforderunghttps://example.com/foo
zuhttps://www.example.com/foo
mit einem 301-http-status.ja, innerhalb des VirtualHost-tags.
schließlich habe es funktioniert aber mit diesen; RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] RewriteRule ^(.*)$ domain.com/$1 [R=301,L]
Foote: ich bin Froh, dass du es kapiert hast, ja, ich verpasste
!
in meiner RewriteCond.Ich habe versucht, zu Bearbeiten, Ihre Antwort zu beheben die fehlende
!
Charakter, aber SO beschwert sich über die Verwendung vonmydomain.com
... und nicht wollen, ändern Sie Ihre Antwort so viel durch den Austausch der Domänen (SO empfiehlt die Verwendung von example.com) wenn man bedenkt, dass es wirklich Antworten OP ' s Frage genau...InformationsquelleAutor anubhava