Apache Tomcat – Neufassung

Apache Tomcat – Neufassung

Ich versuche, eine Umschreiberegel einzurichten, sodass eine eingegebene URL als angezeigt wird example.com/test.

Ich versuche beispielsweise, dies zu tun, sofern es überhaupt möglich ist.

Ich habe den CNAME so eingestellt, dass er auf (dev Remote Environment auf der Anbieterseite) site.example.comverweist .site.devexample.com

Wenn ein Benutzer site.example.comdie URL besucht, wird sie ungefähr so ​​umgeschrieben example.com/test.

Was ich bisher habe, scheint aber nicht zu funktionieren. Bei meinen Besuchen site.example.combleibt es wie es ist.

# rewrite rules for site.example.com
RewriteCond %{http_host} ^site\.example\.com [NC,OR]
RewriteCond %{http_host} ^www\.site\.example\.com [NC]
RewriteRule $ http://example.com/test/ [R,L]

Muss ich einen Reverse-Proxy erstellen und dann von dort aus neu schreiben?

EDIT: Ich entschuldige mich, ich hätte es etwas besser erklären sollen. site.example.com gehört test.com (Unternehmen A). Daher haben wir den CNAME geändert, sodass er auf site.devEnvironment.com (Unternehmen B.com) verweist.

und test.com/test ist unser Server und Verzeichnis. Wir versuchen, die URL so umzuschreiben, dass sie test.com/test statt site.example.com lautet.

Unsere Weiterleitungen sind in der Datei httpd.conf eingerichtet. Ich bin nicht sicher, ob das auch hilft

Antwort1

Ich vermute, dass der reguläre Ausdruck „rewritecond“ oder „rewritemap“ nicht übereinstimmt. Ich habe festgestellt, dass diese schwierig zu handhaben sind.

Stellen Sie sicher, dass Sie eine sehr ausführliche Mod_rewrite-Protokollierung haben (Apache 2.4 SetProtokollebene, Apache 2.2 SatzNeu schreibenLog) Wenn Sie kein Administrator des Webservers sind, wird Ihnen dies wahrscheinlich nicht helfen.

Versuchen Sie es mit einer Umschreibregel wie dieser:

RewriteRule ^foobar /clams/%{HTTP_HOST}/fish [R,L]

Da foobares sich um einen unsinnigen Ort handelt, wird der tatsächliche Verkehr dadurch nicht beeinträchtigt. Richten Sie Ihren Browser auf foobarund er wird zu einem anderen unsinnigen Ort umgeleitet und gibt einen Fehler aus, aber die URL-Leiste sagt Ihnen auch genau, was die %{HTTP_HOST}Variable enthält. (Die Muscheln und der Fisch dienen als Anführungszeichen, wenn also %{HTTP_HOST}ein Schrägstrich oder ein Leerzeichen oder ein anderes heikles Zeichen enthalten ist, werden Sie es sehen.)

(/ aus foobar entfernt für .htaccess-Kompatibilität, danke @w3dk)

Antwort2

Letztendlich habe ich einen Proxypass /test site.example.com eingerichtet.

Wenn der Server also /test sieht, lädt er den Inhalt von site.example.com

verwandte Informationen