XAMPP und mod_rewrite

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

Postby Wiedmann » 06. November 2007 14:20

Ich kriege auf meiner XAMPP das mod_rewrite nicht zum Laufen.

Das merkst du woran?

.htaccess ist vorhanden,

Diese wird auch benutzt?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 14:34

Gute Frage.

- Man könnte "server-info" aktivieren und schauen ob das Modul geladne ist.
- Man könnte ein rewrite.log aktivieren und schauen was passiert
...

Genauso gute Frage. Wie testet man ob eine .htaccess genutzt wird?

Indem man das Wort "Fehler" reinschreibt.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 15:02

Man könnte natürlich auch schreiben was man mit "server-info aktivieren" meint!

http://httpd.apache.org/docs/2.2/mod/mod_info.html

Egal wo, an welcher Stelle?

Ich sag mal "ja".

Was muß dann passieren?

Der Server reagiert darauf mit "Error 500".
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 15:50

Allow from hier_ist_der_vname

Zugriff verweigert!

Nennt sich dein Rechner "hier_ist_der_vname"?
Du musst natürlich auch das dazugehörige Modul aktivieren.
(BTW gibts dafür eine extra Konfigurationsdatei.)

Aber jetzt eigentlich egal:
Nun, dann wird die .htaccess wohl berücksichtigt.

In dieser ".htaccess" stehen also mod_rewrite Directiven? Wenn ja, dann ist mod_rewrite geladen, da der Server sonst auch mit einem "Error 500" antworten würde.

rewrite-log ist aktiviert, da steht nix drin, die Datei ist leer.

Dann stimmt wohl deine ".htaccess" sind. Wenn das RewriteLog/Level aktiv ist, du Rewrite-Directiven benutzt und die RewriteEngine an ist, dann wird dort auch was geloggt.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 16:11

Wenn das RewriteLog/Level aktiv ist,

Wie sieht es damit aus?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 16:20

Wie ich oben sagte, die log-Datei ist vorhanden, vom Apache angelegt, und leer mit der Größe 0

Das glaube ich dir schon... Du kannst ja trotzdem verraten, wie/wo du die beiden Directiven eingestellt hast.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 16:27

.. ich wüßte was du mit "Directiven" genau meinst.

http://httpd.apache.org/docs/2.2/de/configuring.html
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 16:35

Was willst du genau Wissen, welche Befehle?

Wiedmann wrote:Wenn das RewriteLog/Level aktiv ist,
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 16:45

Willst du wissen WIE ich den Befehl zum Schreiben im modrewrite-Log in den conf-Dateien reingeschriben habe?

Ja.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 16:53

Und wie ist "RewriteLogLevel" eingestellt?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 17:44

Wenn du mir sagst was das ist

http://httpd.apache.org/docs/2.2/de/mod ... teloglevel

und wie ich das erfahren kann sage ich es gerne.

Du wirst ja wohl wissen wie du diese Directive konfiguriert hast? Immerhin hast du ja eingangs auf meine Frage geantwortet, dass du das RewriteLog aktiviert hast (wozu auch gehört, den RewriteLogLevel einzustellen).

Jedenfalls muss die einen Wert grösser 0 haben, damit du siehst was mod_rewrite macht.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Wiedmann » 06. November 2007 19:39

Nun ist die Log-Datei voll mit einträgen (nur ein Auszug), aber keine einzige Fehlermeldung zu sehen:

Nun ist zumindest deine urspüngliche Frage geklärt:
wole wrote:Ich kriege auf meiner XAMPP das mod_rewrite nicht zum Laufen.

Der Apache vom XAMPP ist korrekt konfiguriert, damit mod_rewrite geladen wird und Rewrite-Directiven in einer/der ".htaccess" ausgeführt werden.

Tatsächlich würde ich jetzt beim Hersteller nachfragen, warum die Regeln bei dir nicht greifen, bzw. was beim Scriptsetup zu beachten ist.

Evtl. setzt ja aber auch jemand anderes hier dieses Script ein und kennt eine Antwort. (bzw. geht die Regeln von dir durch)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Scory » 07. November 2007 12:08

wole wrote:
Wiedmann wrote:Das merkst du woran?

Gute Frage.
Wenn es läuft sollte ja die URL entsprechend geändert sein, von xxx.php?id=xx&yyyyy auf das Ergebnis der .htaccess


Halt - das stimmt so nicht! Die URL ist KEINESFALLS geändert, sondern das Zielscript wird mit der geänderten URL intern auf dem Server so aufgerufen. Die URL im Browser bekommt das (ebenso wie der Anwender "draussen") NICHT zu sehen.

Also noch einmal: woher weißt Du, dass mod_rewrite nicht funktioniert?

Grüße
Scory
Scory
 

Postby Scory » 07. November 2007 13:10

wole wrote:Steht aber bei dem Programmierer anders da:
...
Statt einer URL á la front_content.php?idcat=34&lang=2&idart=64&client=1 will man suchmaschinenfreundliche Links.
...
eine schöne URL nach dem Schema /sprache/kategorie/artikel.html
...
Demonstration: diese Website

Quelle:
http://www.polycoder.de/contenido-wcms/ ... index.html

Und nun?


Nein, da steht auch nichts anderes - Du verstehst es nur nicht. Nehmen wir das Beispiel von oben:

Du tippst im Browser http://www.domain.de/sprache/kategorie/artikel.html ein. Auf Deinem Rechner gibt es aber ggf. gar kein Verzeichnis sprache, kategorie usw.

Das Modul mod_rewrite macht nun intern(!) daraus beispielsweise die URL http://www.domain.de/front_content.php? ... 4&client=1 - weil auf Deinem Rechner das Script front_content.php liegt, welches diese Parameter (idcat usw.) versteht und auswertet. Im Browser SIEHST DU DAS NICHT. Dort siehst Du weiterhin http://www.domain.de/sprache/kategorie/artikel.html, obwohl Apache kein artikel.html startet, sondern das Script front_content.php mit den o.g. Parametern

Deswegen auch "schöne" URL, weil Du als Anwender normalerweise die untere URL eingeben müßtest - aber die andere URL tut es wegen mod_rewrite ebenso, dennoch kriegst Du selbst die "richtige" URL im Browser NICHT gezeigt.

Wieder meine Frage: woran stellst Du fest, dass mod_rewrite nicht funktioniert?

Grüße
Scory
Scory
 

Postby Scory » 07. November 2007 13:37

wole wrote:
Scory wrote:Also noch einmal: woher weißt Du, dass mod_rewrite nicht funktioniert?
Weil die URL genau so wie oben beschrieben, wie sie von hunderten Installationen, bei mir im Browser eben nicht so angezeigt wird, sondern so wie es Standard bei Contenido ist.
Daher weiß ich es.


Nein - falsche Antwort. Du hast es immer noch nicht verstanden.

Wenn die URLs in Deinem Browsers "unschön" sind, dann bedeutet das, dass Du das Paket für das "Advanced ModRewrite - Contenido Bundle" entweder gar nicht oder falsch installiert hast.

Wäre es RICHTIG installiert, würdest Du IN JEDEM FALL "schöne URLs" sehen. Wenn DANN mod_rewrite nicht funktionieren WÜRDE, dann würdest Du andauernd Fehlermeldungen bekommen, weil der angeklickte Bereich nicht gefunden würde (Kategorie, Artikel usw.).

Die Tatsache, dass Du "unschöne" URLs siehst, bedeutet eben NICHT, dass mod_rewrite nicht funktioniert, denn mod_rewrite macht NICHT die "schönen" URLs, sondern die werden durch das o.g. Bundle "geschönt". Das Modul mod_rewrite stellt dann nur sicher, dass trotz der schönen URLs die RICHTIGEN Scripts mit den RICHTIGEN Parametern aufgerufen werden.

Ich denke, Du bist damit überfordert, dass Contenido mit dem Bundle "Advanced ModRewrite" zu installieren - das ist die Ursache Deines Problems. Zudem steht beispielsweise im Text "arbeitsweise.txt" des Bundles drin, dass im sog. "Backend" von Contenido NIE schöne URLs zu sehen sind:

Das war die Arbeitsweise im Backend. Ihr werdet die URLs im Backend nie als Mod_Rewrite umgewandelt erleben, da dies nur bei der Ausgabe des Frontends geschieht.


Und die Umwandlung in schöne URLs geschieht durch ein zentrales PHP-Script, nämlich dem Modul class.modrewrite.php. Das mod_rewrite kommt danach erst zum Zuge und macht daraus (intern!!) "hässliche" URLs. Lies Dir die ganzen Installationstexte durch - es wird davor gewarnt, dass das nicht einfach ist und dass man PHP gut können muss.

Grüße
Scory
Scory
 

Next

Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests