Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

mod_rewrite - teilweise noch Probleme

Begonnen von hausl78, 02. März 2010, 20:31:53

« vorheriges - nächstes »

hausl78

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
Screenshot 2: Mein localhost

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

Hier gibt es einen Tipp von deren FAQ (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

hausl78

#1
--------------------------------------------------------------------
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

hausl78

#2
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/ (so original-Pfad vom CMS - klickt mal im Menü!!)

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

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

Juergen

hausl78

#3
Zitat von: "hausl78"http://hausl.lima-city.de/ (Der hier ist gerade down :-()
Der geht auch grad wieder  :D

stefanbe

#4
Die Problemme solten in der nächsten Nightly behoben sein.

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

gruss stefanbe

maiemi

#5
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

hausl78

#6
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


stefanbe

#7
maiemi

Das ist klar wenn eine Inhaltseite activ ist steht in der URL
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

stefanbe

#8
Zitat von: "hausl78"hausl78

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

gruss stefanbe

maiemi

#9
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...

stefanbe

#10
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

maiemi

#11
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 ?

stefanbe

#12
Das mit denn RewriteLoops solte kein Problem sein

gruss stefanbe

maiemi

#13
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.

maiemi

#14
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