BlackBoard (http://www.black-board.net/index.php)
- Computerecke (http://www.black-board.net/board.php?boardid=30)
-- Netzwerke/Telekommunikation (http://www.black-board.net/board.php?boardid=2)
--- Apache Dateipfade weiterleiten lassen (http://www.black-board.net/thread.php?threadid=21958)


Geschrieben von Zmaster am 06.03.2006 um 19:02:

  Apache Dateipfade weiterleiten lassen

Hallo,

ich wollte mal fragen, ob ihr ne Möglichkeit kennt, wie ich mein Problem lösen könnte.
Wenn ihr wisst, dass das nicht geht, dann würde ich mich auch freuen, es zu erfahren, dann sind weitere Bemühungen nicht lohnenswert.

Ich möchte gerne, dass Apache (Ver. 2) folgendes tut:
Im Browser wird die URL "localhost/myproject/keypath/bild.jpg" aufgerufen
Anhand des Unterordners "keypath" soll Apache dann die Anfrage an
"localhost/myproject/coolesscript.php" und zwar mit den Parameter "bild.jpg"
Bsp:
code:
1:
localhost/myproject/coolesscript.php?para=bild.jpg


Ok, ich hoffe, ihr wisst wieder was ich mir überhaupt vorstelle smile

Gruß
zmaster



Geschrieben von Misel am 06.03.2006 um 19:12:

 

Ja, das ist möglich. Wie genau das funktioniert, weiß ich aber nicht Augenzwinkern

Das ganze findest Du zum Thema mod_rewrite.



Geschrieben von LX am 06.03.2006 um 19:15:

  RE: Apache Dateipfade weiterleiten lassen

code:
1:
2:
RewriteEngine On
RewriteRule   ^/myproject/keypath/(.*)$   /myproject/coolesscript.php?$1  [L]


Das ganze kommt in die Apachekonfiguration des Hosts, um den es geht.

mod_rewrite muss natürlich geladen sein.



Geschrieben von Zmaster am 07.03.2006 um 01:42:

 

Erstmal vielen Dank.

Jetzt habe ich schonmal was, worunter ich suchen kann.
Habe auch diesen Artikel dazu gefunden: Anleitung zu Apache mod_rewrite

Scheint ganz gut zu sein.
Doch leider startet mein Apache schon gar nicht, wenn ich die Zeile
code:
1:
AddModule mod_rewrite.c
einfüge.
Die Zeile
code:
1:
LoadModule rewrite_module modules/mod_rewrite.so
scheint keine Probleme zu machen.

Eine mod_rewrite.c Datei existiert leider auf meinem System nicht, dafür aber mod_rewrite.so. Ist das so in Ordnung?

Wenn ich nun die Zeile "AddModule" weg lasse, startet er und ich möchte mit
code:
1:
2:
RewriteEngine on
RewriteRule ^/hallo.html$ /script.php
testen, ob es überhaupt funktioniert. Leider kommt eine 404 Fehlermeldung, dass hallo.html nicht existiert. Natürlich, aber dafür soll ja super.php (existiert, man kann es seperat erfolgreich aufrufen) geladen werden.

Irgendwelche Ideen, wie ich weiter testen kann, um den Fehler zu finden?

Gruß
Zmaster



Geschrieben von LX am 07.03.2006 um 01:48:

 

Schau mal in phpinfo(), ob mod_rewrite mit deiner Einstellung überhaupt geladen ist (taucht unter dem Punkt "apache2handler" auf). Achja, und wenn du die Konfiguration änderst, musst du dem Apache auch mitteilen, dass er sie neu einlesen muss (also entweder reload oder restart).

Ein Blick ins Access- bzw. Errorlog kann auch nicht schaden.



Geschrieben von Zmaster am 07.03.2006 um 02:14:

 

Also in der phpinfo() habe mod_rewrite unter "Loaded Modules" gefunden.

Auf neustarten bin ich schon gekommen. Mir ist bewusst, dass er die Config nur beim Starten einliest Augenzwinkern

In den Logs habe ich nur gefunden, dass er hallo.html nicht gefunden hat.

Habe deine Variante eingesetzt, um den Inhalt eines ganzen Verzeichnisses umzuleiten. Leider scheint er es zu ignorieren. Wird ganz normal versucht die Datei zu öffnen. Wenn sie existiert, dann wird sie auch tatsächlich geöffnet.

*amverzweifeln*



Geschrieben von LX am 07.03.2006 um 02:18:

Achtung

Dann zeig mal die Konfiguration deines Hosts her...



Geschrieben von Zmaster am 07.03.2006 um 02:40:

 

Ich habe meine httpd.conf mal angehangen.

Habe nur auskommentierte Sachen gelöscht, sonst wäre ich nicht unter die 20KByte gekommen.



Geschrieben von Compuholic am 07.03.2006 um 12:17:

 

Zitat:
RewriteRule ^/projekt/pfad/(.*)$ /projekt/script.php?$1 [L]


Ich kenne mich zwar mit RegExps nicht so toll aus, aber soweit ich weiß, ist das Zeichen "?" reserviert. Versuch das mal irgendwie anders darzustellen.

Vielleicht muß man das als Escape-Sequenz einbauen...



Geschrieben von LX am 07.03.2006 um 14:57:

 

Zitat:
Original von Compuholic
Zitat:
RewriteRule ^/projekt/pfad/(.*)$ /projekt/script.php?$1 [L]


Ich kenne mich zwar mit RegExps nicht so toll aus, aber soweit ich weiß, ist das Zeichen "?" reserviert.
Ist es auch, nur ist der zweite Pfad keine RegExp.

Ich vergaß aber, dass es korrekt
code:
1:
RewriteRule   ^/projekt/pfad/(.*)$   /projekt/script.php?para=$1  [L]
sein müsste. Das ändert aber nix an der Sache, dass mod_rewrite hier wohl gar nicht zu klappen scheint.

In der angehängten Config finde ich auch gar keinen Abschnitt zu Rewrite. Der müsste in den entsprechenden VirtualHost eingetragen werden... Beispiel:

code:
1:
2:
3:
4:
5:
6:
7:
8:
<VirtualHost *:80>
  ServerName 192.168.2.79
  ServerAlias domain.tld *.domain.tld
  DocumentRoot /xampp/htdocs/u42s/front

  RewriteEngine On
  RewriteRule   ^/projekt/pfad/(.*)$   /projekt/script.php?para=$1  [L]
</VirtualHost>


Das würde dann auf "http://domain.tld/projekt/pfad/blubb.jpg" matchen.



Geschrieben von Zmaster am 14.03.2006 um 14:26:

 

Vielen Dank für den Hinweis.
Das mit dem VirtuallHost war tatsächlich des Rätsels Lösung!

Vielen Dank nochmal.


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH