moziloCMS Supportforum

moziloCMS => Nightly => Thema gestartet von: hausl78 am 02. März 2010, 20:31:53

Titel: mod_rewrite - teilweise noch Probleme
Beitrag von: hausl78 am 02. März 2010, 20:31:53
Hallo!

Mein Testergebnis bei aktiviertem mod_rewrite (wenn von Hoster unterstützt ;))

1. Bei einem Freehoster (lima-city.de) und einem Paidhoster funktioniert es einwandfrei
2. Bei einem Freehoster (7square.ch) und locahost geht es nicht - Behebungsvorschläge unten
3. Bei einem Freehoster (000webhost.com) gibts noch ein anderes Problem

zu 2.
====

Bei mir am localhost und bei einem der Freehoster habe ich das Problem das die URL nicht bis ganz in den Root zurückgeht. Nachfolgend dazu Screenshots - ich habe die relevanten Variablen (und noch andere) ausgeben lassen. Unten im Browserfenster (Screenshot) kann man den fehlenden Rückschritt gut erkennen.

Screenshot 1: Ein Freehoster (http://www.abload.de/img/img1akzp.png)
Screenshot 2: Mein localhost (http://www.abload.de/img/img2376y.png)

Ich habe mir den Code angesehen und dazu folgende Lösungsvorschläge - beide würden oben für alle zwei funktionieren:

index.php - Zeile 39 - Sieht original so aus:

   if($CMS_CONF->get("modrewrite") == "true") {
        $URL_BASE = substr(str_replace($_SERVER['DOCUMENT_ROOT'],"",$_SERVER['SCRIPT_FILENAME']),0,-(strlen("index.php")));
    }
entweder:

Vorne einen Slash hinzufügen, falls keiner vorhanden ist:

   if($CMS_CONF->get("modrewrite") == "true") {
      $URL_BASE = substr(str_replace($_SERVER['DOCUMENT_ROOT'],"",$_SERVER['SCRIPT_FILENAME']),0,-(strlen("index.php")));
     
++      if(substr($URL_BASE,1,1) != "/") {
++      $URL_BASE = "/".$URL_BASE;
++      }
    }
oder:

Andere Pfadvariablen verwenden:

statt: $URL_BASE = substr(str_replace($_SERVER['DOCUMENT_ROOT'],"",$_SERVER
das:   $URL_BASE = str_replace("index.php","",$_SERVER['SCRIPT_FILENAME']);
Wie gesagt in meinen Fällen funktionierten beide Varianten bei beiden Servern.


zu 3.
====

Das hat mit oben meiner Ansicht nach "nur" indirekt zu tun. Es gibt Hoster wie er folgende die verwenden "virtual user directory paths". Hier habe ich es mit den obigen Methoden gar nicht geschafft hinzukommen.

Hier: http://www.abload.de/img/imgd4t9.png (http://www.abload.de/img/imgd4t9.png)

Hier gibt es einen Tipp von deren FAQ (http://www.000webhost.com/faq.php?ID=14 (http://www.000webhost.com/faq.php?ID=14)) in der .htaccess ein "RewriteBase /" zu setzen. Aber ich habs noch nicht hinbekommen, funktionierende Pafade damit zu bekommen - muss ich mir heute noch ein wenig ansehen..

Juergen
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: hausl78 am 02. März 2010, 21:04:34
--------------------------------------------------------------------
Es geht übrigens um das heutige (02.03.10) Nightly  :roll:
--------------------------------------------------------------------

Nachtrag - zu Punkt 3:

Bei dem 000webhost.com funktioniert es so:

Es geht ohne mod_rewrite wenn:
a) wenn "RewriteBase /" in der .htaccess gesetzt ist und mod_rewrite deaktiviert

oder mit mod_rewrite

b) wenn "RewriteBase /" in der .htaccess gesetzt UND die $URL_BASE "/" ist. Zum Testen hab ich das jetzt manuell in die index.php geschrieben. In diesem Fall würde man das erhalten:
-----------------------------------------------------------------------------------------
$_SERVER['SCRIPT_FILENAME']  -->  /www/hausl.netai.net/index.php
$_SERVER['DOCUMENT_ROOT']    -->  /usr/local/apache/htdocs
$_SERVER['SCRIPT_NAME']      -->  /index.php
$URL_BASE                    -->  /
-----------------------------------------------------------------------------------------
Ob und wie man das autom. erkennen und abfragen kann ... keine Ahnung  :shock:.

Was mir aufgefallen ist, ist das bei dem Punkt 3 eben die beiden $_SERVER['SCRIPT_FILENAME'] und $_SERVER['DOCUMENT_ROOT'] unterschiedlich sind. Ev. ist das ja DAS Kriterium ??


Juergen
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: hausl78 am 02. März 2010, 22:31:32
Sorry, einmal muss ich noch... Ich hab die Debug-Ausgabe der Pfade noch um getcwd() erweitert, ev. hilft es wem ja was  :roll: und 7square.ch heißt eigentlich korrekt square7.ch !  :mrgreen:

Nachfolgende die Links bzw. die localhost Ausgabe:


Mein localhost:
-----------------------------------------------------------------------------------------
getcwd()                     -->  C:UsersJuergenWebsmoziloCMSnightly
$_SERVER['SCRIPT_FILENAME']  -->  C:/Users/Juergen/Webs/moziloCMSnightly/index.php
$_SERVER['DOCUMENT_ROOT']    -->  C:/Users/Juergen/Webs/
$_SERVER['SCRIPT_NAME']      -->  /moziloCMSnightly/index.php
$URL_BASE                    -->  
-----------------------------------------------------------------------------------------

Und sonst die anderen beiden Freehoster:

http://hausl.square7.ch/ (http://hausl.square7.ch/) (so original-Pfad vom CMS - klickt mal im Menü!!)

http://hausl.netai.net/ (http://hausl.netai.net/) (hier hab ich die $URL_BASE manuell geändert sonst ständig 404er)

http://hausl.lima-city.de/ (http://hausl.lima-city.de/) (Der hier ist gerade down :-()

Juergen
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: hausl78 am 03. März 2010, 08:21:17
Zitat von: "hausl78"http://hausl.lima-city.de/ (http://hausl.lima-city.de/) (Der hier ist gerade down :-()
Der geht auch grad wieder  :D
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: stefanbe am 08. März 2010, 21:21:19
Die Problemme solten in der nächsten Nightly behoben sein.

Nur bei http://www.000webhost.com (http://www.000webhost.com) muss die .htaccess erweitert werden mit
RewriteBase /(optional Unterordner)
wenn man mod_rewrite nutzen möchte

gruss stefanbe
Titel: Re: mod_rewrite - teilweise noch Probleme- keine Banneranzeige
Beitrag von: maiemi am 12. März 2010, 01:22:20
Hallo Zusammen,

anbei noch eine Besonderheit im Zusammenhang mit aktiviertem mod-rewrite:

--> XAMPP lite 1.73
--> PHP 5.31
--> Nightly Build 1.12 "Amalia Revicioj 384",
--> Konfiguriert, dass Unterseiten mit selbem Namen wie Kategoriename nicht im Submenü auftauchen.

In meiner template.html habe ich eine Bannergrafik fest per img src= (interner Link)verdrahtet.

Wird eine Unterseite einer Kategorie mit nur einer Unterseite, die den selben Namen, wie die Unterseite trägt, angeklickt, wird die Bannergrafik korrekt angezeigt.

Wird eine Unterseite einer Kategorie mit mehreren einer Unterseiten, von denen "die erste" Unterseite den selben Namen, wie die Kategorie trägt, angeklickt, wird die Bannergrafik nicht angezeigt.

Ist mod-rewrite deaktiviert, wird die Bannergrafik immer korrekt angezeigt.
Es spielt keine Rolle, ob die Unterseite(n) mit dem selben Namen, wie der der Kategorie im Menü (Submenü) angezeigt werden, oder nicht.

Auch wenn keine der (mehr als 1) Unterseiten den selben Namen, wie die Kategorie trägt, besteht der Fehler.

Anbei 3 Bilder zur Verdeutlichung.

Gruss

maiemi
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: hausl78 am 12. März 2010, 08:54:53
Und nochwas...

Im Admin-Bereich unter "Dateien" wenn man direkt aufs Bild geht, dann stimmt der Pfad nicht:

Falsch:  http://hausl.square7.ch/users/hausl/www/kategorien/10_Willkommen/dateien/mozilo.jpg
Richtig: http://hausl.square7.ch/kategorien/10_Willkommen/dateien/mozilo.jpg

(http://www.abload.de/img/img0ebb.gif)
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: stefanbe am 12. März 2010, 11:35:23
maiemi

Das ist klar wenn eine Inhaltseite activ ist steht in der URL
www.domain.de/Kategorie/Inhaltseite.html (http://www.domain.de/Kategorie/Inhaltseite.html)
die Position der Inhaltseite ist dann im Ordner drin im img müsste wenigsten ein ../ davor
Deshalb gibts {LAYOUT_DIR}
und in der kommenden Nightly {CATEGORY_URL}

hausl78

ist bekannt und wird behoben Danke

gruss stefanbe
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: stefanbe am 12. März 2010, 12:04:24
Zitat von: "hausl78"hausl78

ist bekannt und wird behoben Danke
Solte behoben sein in der nächsten Nightly

gruss stefanbe
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: maiemi am 12. März 2010, 14:36:07
Man könnte das quasi als "Workaround" umgehen, in dem man die Grafik in das Verzeichnis "Dateien" in der jeweiligen Kategorie ablegt, dann klappt auch mi mod-rewrite, wie ich gerade feststellen konnte. Macht vielleich sogar Sinn, weil die hochgeladenen Dateien / Grafiken / Bilder auch dort landen...
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: stefanbe am 12. März 2010, 14:41:07
Zitat von: "maiemi"Man könnte das quasi als "Workaround" umgehen, in dem man die Grafik in das Verzeichnis "Dateien" in der jeweiligen Kategorie ablegt, dann klappt auch mi mod-rewrite, wie ich gerade feststellen konnte.
Wenn du für jede Cat Page ein anderes Banner haben wilst dann ja ansonsten soltest du im Template immer {LAYOUT_DIR} benutzen

gruss stefanbe
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: maiemi am 12. März 2010, 22:56:22
Das steht bei meinem Hoster (Strato)


ZitatAnmerkung
Bitte beachten Sie, dass wir "Directive RewriteOptions" nicht in ".htaccess"-Dateien anbieten und dass die maximale Tiefe fuer RewriteLoops auf 3 beschränkt ist.

Ist das mit den 3 Ebenen Tiefe ein Problem ?
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: stefanbe am 12. März 2010, 23:10:17
Das mit denn RewriteLoops solte kein Problem sein

gruss stefanbe
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: maiemi am 13. März 2010, 13:14:00
stelle gerade fest, dass bei meinem Provider (Strato) nicht mal das Style-Sheet (style.css) geladen wird, wenn ich im CMS mod-rewrite aktiviere. Bin noch am recherchieren, wo ich bei Strato noch was einstellen müsste. Die Info, die Strato zu dem Thema gibt, ist recht dünn....

Melde mich, wenn ich mehr weiss.
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: maiemi am 13. März 2010, 13:50:12
Zitat von: "maiemi"stelle gerade fest, dass bei meinem Provider (Strato) nicht mal das Style-Sheet (style.css) geladen wird, wenn ich im CMS mod-rewrite aktiviere. Bin noch am recherchieren, wo ich bei Strato noch was einstellen müsste. Die Info, die Strato zu dem Thema gibt, ist recht dünn....

Melde mich, wenn ich mehr weiss.

Musste nen neuen EIntrag machen, da der alte nimmer zu editieren war...

hab in nem anderem Forum was dazu gefunden:

http://www.modrewrite.de/foren/viewtopic.php?t=5116&highlight=modrewrite+strato
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: hausl78 am 13. März 2010, 16:56:50
Hi!

Mal ein Schuss ins Blaue ("css wird nicht geladen" etc..).. Schau dir mal hier den Eingangspost an, da mußte die .htaccess um "RerwriteBase /" erweitert werden dann gings, vorher wurde auch kein css gefunden. Laut deren FAQ muss man das so machen, weil die virtual user direcotrys verwenden.. oder so ;-)


Hier:

Zitat...
Es gibt Hoster wie er folgende die verwenden "virtual user directory paths"
...
Hier gibt es einen Tipp von deren FAQ (http://www.000webhost.com/faq.php?ID=14 (http://www.000webhost.com/faq.php?ID=14)) in der .htaccess ein "RewriteBase /" zu setzen. Aber ich habs noch nicht hinbekommen, funktionierende Pafade damit zu bekommen - muss ich mir heute noch ein wenig ansehen..
Juergen
Titel: Re: mod_rewrite - teilweise noch Probleme
Beitrag von: maiemi am 16. März 2010, 01:19:49
Hallo Jürgen, das wars nicht.

Bei Verwendung von "RerwriteBase /" wird ein "internal Error 500 " erzeugt.

mod-rewrite funktioniert inzwischen. Folgende Einstellungen musste ich bei meinem Provider Strato durchführen:

Das Banner wurde in den Unterseiten nicht geladen, weil ich den "wörtlichen Pfad"  (<img src="/layouts/<Layoutname>/grafiken/banner1.jpg") in der template.html eingetragen hatte.

Nachdem ich den Pfad in der "template.html" in (= {LAYOUT_DIR}/grafiken/banner1.jpg ) geändert hatte, wurde das Banner korrekt und auf allen Unterseiten angezeigt.

CSS wird entsprechend geladen.

Damit mod-rewrite generell funktioniert, muss der (Strato-)Serverpfad zum Domainverzeichnis angegeben werden und nicht nur das Verzeichnis der Domain (http :// www. domain.de/index.php)

Das sieht dann etwa so aus:

<IfModule rewrite_module>
RewriteEngine On
RewriteRule /home/strato/http/power/web7/xx/xx/xxxxxxx/htdocs/domainname/verzeichnis/index.php$ /home/strato/http/power/web7/xx/xx/xxxxxxx/htdocs/domainname/verzeichnis/index.php [QSA,L]
RewriteRule .html$ index.php [QSA,L]
</IfModule>

Nun funktioniert mit der 1.12-er nightly alles, wie es soll :)

Gruss,
maiemi