Statische Files für Seaside Image

Alles, was den Apache betrifft, kann hier besprochen werden.

Statische Files für Seaside Image

Postby Dude239 » 10. November 2011 15:58

Hallo zusammen,
ich bin noch relativ unbedarft im Umgang mit Servern, deswegen habe ich hier eine Frage die vielleicht dämlich ist...

Also folgende Situation:
Ich habe einen Apache laufen, der der über eine Rewrite Rule den HTTP-Request auf einen Szwazoo Server weiterleitet, der in meiner Smalltalk Entwicklungsumgebung integriert ist. Wobei das letztere Nebensache ist.
Nun möchte ich statische Files in einem Verzeichnis der Entwicklungsumgebung zur Verfügung stellen.
Hier meine Virtualhost config:
Code: Select all
<VirtualHost *>

    ProxyPreserveHost On
    ServerName localhost
   

    DocumentRoot "D:/Server/Apache/myApp/web"
   
    <Directory "D:/Server/Apache/myApp/web">
        Order deny,allow
        Allow from all
   Options Indexes
    </Directory>
  RewriteEngine On
  RewriteCond  D:/Server/Apache/myApp/web%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*)$ http://localhost:6060/myApp/$1 [proxy,last]


</VirtualHost>


Wenn ich die RewriteRule auskommentiere, bekomme ich wunderschön alle Files im Verzeichnis aufgelistet, wenn sie jedoch nicht auskommentiert ist, dann habe ich keinen Zugriff auf die Files, sondern sehe im Quelltext folgendes:

Code: Select all
<img alt="APPLogo" width="25%" src="http://localhost/D%3A%5CServer%5CApache%5CmyApp%5Cweb%5Capplogo.gif">


Hat jemand eine Idee? Ich wäre so dankbar, weil es mich doch jetzt schon ein paar Tage foppt! :evil:

Vielen Dank!
Malte
Dude239
 
Posts: 2
Joined: 10. November 2011 11:47
Operating System: Windows 7

Re: Statische Files für Seaside Image

Postby Nobbie » 10. November 2011 19:08

Das offensichtlichste (unter vielen schrägen Dingen) was mir auffällt, ist hier der fehlende Slash:

Code: Select all
RewriteCond  D:/Server/Apache/myApp/web%{REQUEST_FILENAME} !-f


Das ist so sicherlich falsch. Besser ist das:

Code: Select all
RewriteCond  D:/Server/Apache/myApp/web/%{REQUEST_FILENAME} !-f
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Statische Files für Seaside Image

Postby Nobbie » 10. November 2011 19:47

... P.S.:

Wenn ich die Doku zu RewriteCond lese (liest Du auch Doku?), dann scheint das aber auch "doppelt gemoppelt" zu sein, denn dort steht:

REQUEST_FILENAME
The full local filesystem path to the file or script matching the request.


Hast Du das gelesen und getestet?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Statische Files für Seaside Image

Postby Dude239 » 11. November 2011 08:14

Wenn ich ehrlich bin nein, ich habe den Code aus einem Buch adaptiert, nur leider ist das 1. für Linux und 2. scheinbar nicht mehr auf dem neusten Stand.
REQUEST_FILENAME
The full local filesystem path to the file or script matching the request.

Was meinst du damit?
Vielleicht sollte ich einfach einen Blick in die Doku riskieren. Das Problem ist, das ich auf die ganze Sache eigentlich nicht viel Zeit aufwenden wollte, aber scheinbar war das Wunschdenken!

Danke bis hier hin erstmal.

Ich habe deinen ersten Rat mal beherzigt und den Slash hinzugefügt, aber es hat leider nicht groß etwas verändert.
Würdest du mich noch an den anderen schrägen Dingen teilhaben lassen?

Viele Grüße
Dude239
 
Posts: 2
Joined: 10. November 2011 11:47
Operating System: Windows 7

Re: Statische Files für Seaside Image

Postby Altrea » 11. November 2011 09:50

Dude239 wrote:Wenn ich ehrlich bin nein, ich habe den Code aus einem Buch adaptiert, nur leider ist das 1. für Linux und 2. scheinbar nicht mehr auf dem neusten Stand.

Ich kann mir nicht vorstellen, dass diese Variable sich unter Linux anders verhält als unter Windows und dass es jemals anders war.
Also sollte das so in einem Buch gestanden haben, wäre dies falsch.

Dude239 wrote:
REQUEST_FILENAME
The full local filesystem path to the file or script matching the request.

Was meinst du damit?

Übersetze einfach, was da steht.

Dude239 wrote:Vielleicht sollte ich einfach einen Blick in die Doku riskieren. Das Problem ist, das ich auf die ganze Sache eigentlich nicht viel Zeit aufwenden wollte, aber scheinbar war das Wunschdenken!

Das solltest du. Oder erstell dir eine test php Datei in der du einfach nur diese eine Variable ausgibst. Dann fällt es dir vielleicht selbst auf, was sie ausgibst.
Vom Zeitaufwand her sind das weniger als 5 Minuten. Wenn du dir schon diese Zeit nicht nehmen magst, solltest du diese Frage auchnicht in einem Forum stellen und von den dortigen Helfern erwarten, ein deutliches mehr an Zeit aufzuwenden dir alles haarklein vorzukauen.

Nobbie hat quasi schon mit dem Lattenzaun gewunken, als er dir die relevante Stelle in der Doku zitiert und die wichtigen stellen dick rot hervorgehoben hat. Etwas Eigeninitiative und Mitarbeit ist da denke ich nicht zuviel verlangt.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Statische Files für Seaside Image

Postby Nobbie » 11. November 2011 13:30

Dude239 wrote:Wenn ich ehrlich bin nein, ich habe den Code aus einem Buch adaptiert, nur leider ist das 1. für Linux und 2. scheinbar nicht mehr auf dem neusten Stand.


Danach sieht das aber gar nicht aus (nach "veraltet" sowieso nicht). Das sieht viel mehr danach aus, als hättest Du beim "adaptieren" massenhaft Fehler eingebaut.


Dude239 wrote:REQUEST_FILENAME
The full local filesystem path to the file or script matching the request.

Was meinst du damit?


Obwohl Altrea eigentlich Recht hat, will ich Deine Nase noch tiefer hineindrücken: "full local filesystem path" heißt "voller lokaler Dateisystempfad". D.h. doch, der Wert der Variable REQUEST_FILENAME enthält nicht nur den simplen Dateinamen, sondern ist bereits der vollständige Dateiname auf dem aktuellen Betriebssystem. Beispielsweise D:/Server/Apache/myApp/web/index.html - und vor diesen Dateinamen klatschtst Du in Deiner Condition (RewriteCond) noch einmal den Pfadnamen (wobei Du irrig annimmst, REQUEST_FILENAME habe nur den Wert index.html). Dass Du auch noch den Trennslash vergessen hast, ist nur das Sahnehäubchen und macht den Code noch falscher, aber falscher als falsch geht ja eigentlich nicht. Die Condition prüft, ob es KEINE Datei mit diesem Namen gibt, die Prüfung ergibt natürlich TRUE (weil es natürlich keine Dateien mit solchen Namen gibt, und zwar immer) und dann wird (auch für statisch vorhandene Dateien) die RewriteRule ausgeführt.

Diese RewriteRule passt aber auch irgendwie nicht zusammen zu dem Ergebnis, welches Du uns zeigst: Du leitest auf localhost:6066 (also Port 6066) weiter, aber dieser Port ist in Deinem Ergebnis auf einmal verschwunden. Dafür hängt hinten (man muss nur die Spezialzeichen mit %A usw. dekodieren) hängt dafür quasi der ganze RequestFilename dran - das könnte aber nur dann passieren, wenn in Deiner RewriteRule hinten der Ersetzungsparameter nicht $1 lautet (wie bei Dir), sondern %1 (feiner Unterschied).

Das sind die schrägen Dinge, die mir auf Anhieb alle auffallen. Ich weiß von hier aus nicht, was da alles falsch läuft, aber es ist offensichtlich einiges. Möglicherweise hast Du die Fehler aber auch beim "adaptieren" in dieses Forum eingebaut - ist das alles wirklich mit copy&paste hier eingefügt, oder händisch so la la?

Last not least erklärt das ganze aber immer noch nicht, wieso in Deinem Ergebnis die URLs ersetzt werden - denn die werden nur ersetzt bei einem HTTP Request (nach außen unsichtbar) - aber wenn ich das richtig verstehe, sehen wir irgendwelche Ausschnitte aus HTML Dateien o.ä.?! Möglicherweise macht das wiederum der Proxy, auf den weitergeleitet wird. Das ist die einzige Erklärung, die ich dafür finde, aber das musst Du selbst herausfinden.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 23 guests