Wie das Rewrite-Module einschalten?

Hallo allerseits, jetzt muss ich mich doch nochmal melden

[QUOTE=ncm;28098]Als nächstes werde ich die Apache-Rewrite-Ampel von rot auf grün schalten.[/QUOTE]

Das habe ich getan, mit der Holzhammermethode, in oxsysrequirements.php
den betreffenden Test stillzuschalten. Daraufhin konnte ich das Setup durchführen
und komme bis zur Frontpage des Demoshops, allerdings nicht hinein.

Bevor ich jetzt weiter stöbere, mach ich mal lieber Feierabend und warte ab,
ob vielleicht von Euch eine Anregung kommt.

Bye
Norbert

Hallo Norbert,

Das habe ich getan, mit der Holzhammermethode, in oxsysrequirements.php
den betreffenden Test stillzuschalten.

Nicht gut.

Kein Wunder. Zwischenzeitlich wurde die Forensoftware geändert. Nicht alle Links konnten unbeschadet übernommen werden.

Prüf bitte, ob der Wert “RewriteBase /” in Deine .htaccess eingefügt werden muss. Ggf. musst Du statt “/” einen Unterordner, z.B. “/oxid/” einsetzen.

Gruß

Hallo Marco, und andere

[QUOTE=Marco Steinhaeuser;28244]Nicht gut.[/QUOTE]

Naja, immerhin bin ich mit dem Holzhammer schon mal bis vor’s Schaufenster
gekommen, und das ist deutlich lustiger, als gar nicht erst in die Stadt gelassen
zu werden :wink:

Also vielen Dank für die Antwort! Das hat mich jedenfalls wieder eine
Station weitergebracht. Leider noch nicht ans Ziel.

(1) “/admin/test.php” sagt nach wie vor “mod_rewrite_off”, aber laut phpinfo()
ist mod_rewrite geladen.

(2) “RewriteBase /” stand nicht in der .htaccess, ich hab’s ergänzt (und mit
"/oxid", “oxid/”, “/oxid/”, etc. experimentiert). BTW “RewriteEngine On” stand
auch nicht drin, das hatte ich vorher schon ergänzt.

(3) Vielleicht geht es darum, das Rewrite-Modul für OXID überhaupt sichtbar zu
machen, nicht darum, die RewriteBase einzustellen (falls das ein Unterschied ist).

(4) Könnte es eine Rolle spielen, daß der Shop sich nicht unter DocumentRoot
befindet, sondern per Alias angesteuert wird? In httpd.conf steht:

Alias /oxid …/…/…/app.oxid/trunk/OXID_ESHOP_CE_4.2.0_23610

(5) In http://httpd.apache.org/docs/2.2/misc/rewriteguide.html
steht, daß der Alias für RewriteRule ein [PT]-Flag erfordert, und in
http://httpd.apache.org/docs/2.2/rewrite/rewrite_flags.html ist das
[PT]-Flag genauer beschrieben.

(6) In .htaccess sind 3 RewriteRule. Dort habe ich mit dem [PT]-Flag
experimentiert, blicke aber nicht richtig durch. Wäre das überhaupt relevant,
um erstmal “/admin/test.php” zu einem “mod_rewrite_on” zu überreden?

Über weitere Inspiration würde ich mich riesig freuen.

Sorry für die verzwickte Story,
Norbert

Hallo Norbert,

Holzhammermethode ist natürlich etwas “unschön”. Wie von Marco bereits angedeutet, ist die Abfrage ja nicht ganz umsonst dort, sondern eben desswegen, weil ohne mod_rewrite genau der beschriebene Fehler auftritt.

Hast du denn mal probiert eine eigene Umschreibung zu machen um zu prüfen, ob mod_rewrite WIRKLICH geladen ist.

Gruß Joscha

Hallo Joscha

Danke für Deine Antwort!

[QUOTE=jkrug;28276]
Hast du denn mal probiert eine eigene Umschreibung zu machen um zu prüfen,
ob mod_rewrite WIRKLICH geladen ist.
Gruß Joscha[/QUOTE]

Nein, aber auf sowas wird’s rauslaufen. Bin völlig neu mit rewriten und PHP.

Ich stelle mir drei Sachen vor, die ich tun kann (falls ich nicht vorher das
Handdtuch werfe ;))

(1) Selber das rewriten lernen, außerhalb von Oxid, um den Mechanismus
zu verstehen und zu prüfen ob es überhaupt funktioniert. (Dein Vorschlag)

(2) In den Code schauen. Von der Statusmeldung in phpinfo() (die “on” sagt),
und von der Statusmeldung in OXID (die “off” sagt) jeweils im Code rückwärts
gehen und vergleichen. Da muß irgendwann ein Unterschied kommen, der
vielleicht zur Erklärung beiträgt.

(3) Eine Installation in einer anderen Umgebung durchführen, wo es dann
vielleicht sofort funktioniert, dann kann ich die Umgebungen vegleichen.

Da werde ich eine Weile meinen Spaß damit haben. Kann also dauern,
bis Ihr wieder von mir hört.

Bye
Norbert

Hallo Norbert,

es ist ja nicht so, dass wir das Thema zum ersten Mal hören…
Es gibt einige Leute, die dazu bereits etwas geschrieben haben, unter anderem ich :smiley:
http://www.marco-steinhaeuser.de/rewritebase-oxid-eshop.html

Zusätzlich für den Fall, dass Du einen eigenen Server betreibst, dieser vielleicht ein Debian (oder Derivat) ist und Du zum ersten Mal mit rewrite arbeitest solltest Du prüfen, ob im vhost “AllowOverride = On” eingetragen ist.

Gruß

Hi Marco und Joscha

Danke für Eure Antworten

Inzwischen habe ich außerhalb von Oxid rewriten gelernt. Zuerst von httpd.conf aus unter DocumentRoot, dann unter einem Alias, dann von einer .htaccess aus. Ich kann also garantieren, daß rewrite und die .htaccess funktionieren.

Trotzdem läuft es nicht. Die Oxid-Rewrite-Ampel ist grün. Ich sehe die Frontpage des Shops, komme aber nicht hinein. Ich schätze, irgendein Finetuning in der .htaccess fehlt noch. (RewriteBase oder [PT]-Flag?)

[QUOTE=Marco Steinhaeuser;28307]… solltest Du prüfen, ob im vhost “AllowOverride = On” eingetragen ist.[/QUOTE]

(1) Yup, genau das war eine Sache die gefehlt hat. Und zwar nützt “AllowOverride On” nichts als globale Angabe, sondern es muß im betreffenden Directory-Abschnitt stehen (da ich Alias, nicht Vhost verwende).

(2) Außerdem: In httpd.conf muß stehen “AccessFileName .htaccess”, sonst wird die .htaccess gar nicht erst erkannt.

(3) Mit RewriteBase habe ich ausgiebig experimentiert, bin aber nicht hundertpro sicher, ob es nicht vielleicht doch iwas mit dem Alias kollidiert.

(4) Denn da gibt es das [PT]-Flag, das im Apache Rewrite-Guide beschrieben ist in Zusammenhang mit Alias, damit habe ich auch experimentiert. Habe aber noch nicht kapiert, was das genau macht.

[QUOTE=Marco Steinhaeuser;28307]http://www.marco-steinhaeuser.de/rew...xid-eshop.html[/QUOTE]

Danke für den Link. Gute Zusammenfassung!

Habe alle dort genannten Bedingungen erfüllt. Irgendein kleiner Fliegenschiß muß da noch wo sein.

Bitte gebt mir nicht den Rat, ich solle statt Alias doch Vhost verwenden, denn das habe ich schon getan, und es hat wieder andere Nachteile.

Schon probiert habe ich auch, Oxid unter DocumentRoot zu schieben, um die Alias-Thematik auszublenden. Das werde ich mit meinem neuen Wissen nochmal probieren.

Tja, womöglich muß ich mich dann doch noch ins PHP stürzen. Da brauche ich aber erstmal eine IDE oder was, denn mit Notepad geht’s Debuggen halt doch recht hart :wink:

Es schwebt mir da die Komodo-IDE vor, mit der ich manchmal Python tippe. Oder Eclipse, was ich aber erst installieren muss … Oder habt Ihr diesbzüglich einen Tipp?

So long
Norbert

Bingo!

[QUOTE=ncm;29070]Irgendein kleiner Fliegenschiß muß da noch wo sein.[/QUOTE]

Kurz: Oxid Rewriting läuft. Bin drin im Demo-Shop.

Die Geschichte in lang:

Habe parallel zum ‘normalen’ Apache meines “Gipsy Drive” (http://downtown.trilo.de/svn/app.webstack/trunk/index.html)
XAMPP Light installiert (http://downtown.trilo.de/svn/app.xampp/trunk).

Erster Schock: Das aktuelle XAMPP enthaelt PHP 5.3! Genau das war ja die als
erstes vermutete Fehlerquelle, denn Oxid läuft offiziell nur unter PHP 5.2. Sei’s drum,
da bin ich nicht zimperlich. Die PHP-Version hat dann auch als irrelevant herausgestellt.

Jetzt habe ich also einen wunderbaren Mischmasch auf dem USB-Laufwerk: alle
Komponenten mindestens doppelt. (Je nach Rechner sogar drei und vierfach. ;)))
Z.B. XAMPP startet eiskalt seinen Konkurrenz-Apache, wenn der nicht vorher seinen
Windows Service uninstalliert hat.

Das MySQL lasse ich von der alten Gipsy-Installation laufen, denn da sind ja schon
Oxid-Daten drin.

PHP togglen hab ich noch nicht probiert, das geht aber sicher auch.

Bin begeistert von XAMPP! Leider paßt es letzten Endes nicht in mein Schema.
Oder sollte ich darüber nochmal nachdenken? Jedenfalls: XAMPP enthält erstklassige
Konfigurations-Dateien! Und die kann ich kreuz und quer mit dem anderen Apache
vergleichen und hin und her schalten.

XAMPP hat genau die selben Symptome gezeigt wie die Gipsy-Installation:
Apache sagt rewrite ist an, Oxid sagt rewrite ist aus.

Mit dem neuen XAMPP konnte ich die Schuld nicht mehr auf meine selbstgestrickte
Installation schieben. Also alles nochmal von vorne. Drill down the configuration …

In der .htaccess stand: <IfModule mod_rewrite>

Es muß aber heißen: <IfModule rewrite_module>

Hahaha! Wie konnte das passieren? In der orginalen .htaccess stand
<IfModule mod_rewrite.c>.

Im Zuge der Debuggerei hatte ich probehalber das “.c” weggemacht, denn ich
hatte das Modul ja nicht eincompiliert, sondern separat. Dann war wohl gerade
Feierabend, und ich habe diese Sache nicht mehr hinterfragt.

Dabei funktioniert beides: entweder <IfModule rewrite_module> oder
<IfModule mod_rewrite.c>. Aber NICHT <IfModule mod_rewrite>.

Kapitel abgeschlossen. Ein lausiger Typo war’s. Bin schon gespannt, wie es
drinnen im Shop ausschaut …

Danke nochmal fuer Euere Anregungen, die mir über die Durststrecke
geholfen haben.

Bye

N.