[geloest] Apache mod_rewrite: WebService.wsdl laesst sich nicht redirecten

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

[geloest] Apache mod_rewrite: WebService.wsdl laesst sich nicht redirecten

Beitrag von Meillo » 09.11.2017 18:20:59

Hoi,

ich versteh's einfach nicht und denke, dass ich inzwischen alles ausprobiert habe. Mir kommt's wie Schwarze Magie vor, aber vielleicht sieht oder weiss ja jemand was ich uebersehe.

Ich moechte die URL einer statischen Seite (``WebService.wsdl'') auf eine dynamische (``WebService.wsdl.php'') umbiegen. Frueher war die WSDL statisch, jetzt wird sie dynamisch generiert. Wenn jemand die alte URL zur WSDL aufruft soll er das gleiche Ergebnis bekommen wie wenn er die neue URL aufruft.

Folgenden Rewrite haette ich gerne:

Code: Alles auswählen

RewriteRule ^soap/WebService\.wsdl$ soap/WebService.wsdl.php [L]
Er tut aber nicht. Zurueck kommt ein 404.

Ich bekomme ihn einfach nicht zum Laufen (hab's gestern, also an einem anderen Tag, auch schon probiert). Ich hab Caches geleert, den Apache durchgestartet und die Website in ein neues Verzeichnis kopiert.

Was mich wundert, wenn ich den Dateinamen ``WebService.wsdl'' durch etwas anderes ersetze, dann geht's ploetzlich:

Code: Alles auswählen

RewriteRule ^soap/WebService\.foo$ soap/WebService.wsdl.php [L]
Auch das geht:

Code: Alles auswählen

RewriteRule ^soap/WebService\.foo\.wsdl$ soap/WebService.wsdl.php [L]
Ich habe den Apache neu gestartet und mit w3m und einem zweiten Firefox von einem anderen Rechner darauf zugegriffen: Immer genau dann wenn ``soap/WebService.wsdl'' angefordert wird, geht's nicht. Genau der Fall muss aber gehen, weil das eben die alte URL ist, die weiter funktionieren muss.

Die Network-Konsole im Firefox (Strg-Shift-Q) zeigt mir auch keine (evtl. gecachten) Redirects an. (Meine RewriteRule leitet nur intern um, aber es koennte ja sein, dass von frueheren Tests noch einer vorhanden waere.)

Zumindest mit w3m muesste es ja funktionieren, denn der ist voellig unbeteiligt. Und wenn ich einen ``apache restart'' mache, sollte der auch etwaige Caches auf Webserver-Seite vergessen, denke ich mir. Aber da es egal ist welchen Browser ich verwende, tendiere ich doch dazu, dass es am Webserver liegt.

Irgendetwas muss ich uebersehen, bloss was?

Oder wie kann ich sonst noch debuggen?
Use ed once in a while!

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Apache mod_rewrite: WebService.wsdl laesst sich nicht redirecten

Beitrag von Meillo » 09.11.2017 18:37:10

Oh mann, ich hab's!

https://www.bennadel.com/blog/2218-nego ... tiated.htm

TL;DR: Ein ``Options -MultiViews'' hat geholfen. :facepalm:

Ich erspare euch hier jetzt mal den Software-Komplexitaets-Rant und bin einfach nur erleichtert, dass es endlich tut. *uff*
Use ed once in a while!

am2
Beiträge: 276
Registriert: 20.08.2016 21:56:44

Re: Apache mod_rewrite: WebService.wsdl laesst sich nicht redirecten

Beitrag von am2 » 09.11.2017 21:46:31

Gratuliere und bis zum nächste Mal :mrgreen: Wir hatten heute ein namespace-Konflikt (oder was es auch immer war...) in unserer wsdl. Sämtliche Anfragen mit SOAP-Ui endeten mit "...or namespace not recognized". Nach ungefähr 3 Stunden fanden wir den Wurm (er saß vor dem Bildschirm, wie immer). Es war eine Zeile mit einem namespace, die Fehlte. Wir teilen jedoch das Schicksal von Ben Nadel - es gibt noch viel zu lernen (über die wsdl-namespaces und deren Zusammenhänge).

Antworten