ModRewrite funktioniert nicht

Gesperrt
Bender78
Beiträge: 14
Registriert: Sa 28. Mär 2009, 11:16
Kontaktdaten:

ModRewrite funktioniert nicht

Beitrag von Bender78 »

Servus,

ich arbeite mit Contenido 4.8.11 und AMR 0.5.3
Habe das Plugin installiert, keine Fehlermeldungen, Webserver ist auf Apache 2 umgestellt, alles bestens.
Wenn ich jetzt eine .htaccess mit dem Testinhalt

Code: Alles auswählen

RewriteEngine on
RewriteRule ^ http://www.contenido.org [R,L]
erstelle, werde ich anstandslos weitergeleitet.

Doch das wars dann auch schon:
Wenn ich jetzt die "htaccess_simple.txt" benutze, bekomme ich eine Fehlermeldung ("Internal Server Error") und wenn ich die "htaccess_restrictive.txt" verwendet, dann läuft zwar die Seite ohne Probleme, aber es werden keine URLs umgeschrieben.

Meine Verzeichnisstruktur ist geradezu 08/15:
/home/www/cms
/home/www/contenido
...
htaccess liegt in /home/www

Also kann ich doch alle Verzeichnisse auf den Standard-Werten (z.B. "/cms") lassen, oder?

Oder liegt es daran, dass mein URLs keine "idart" enthalten?
Da ich nur mit den Startartikeln arbeite, lauten die alle "front_content.php?idcat=[2-9]&lang=1"

Bin für jeden Hinweis dankbar!
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: ModRewrite funktioniert nicht

Beitrag von xmurrix »

Hallo,
Bender78 hat geschrieben:...Wenn ich jetzt die "htaccess_simple.txt" benutze, bekomme ich eine Fehlermeldung ("Internal Server Error") und wenn ich die "htaccess_restrictive.txt" verwendet, dann läuft zwar die Seite ohne Probleme, aber es werden keine URLs umgeschrieben...
konntest du die Zeile, die in der htaccess_simple.txt den Fehler bei dir verursacht, eingrenzen? Die darin enthaltenen Regeln sollten ohne Probleme funktionieren, zumindest scheint das bei den meisten Usern der Fall zu sein...
Nachtrag:
Die folgenden Zeilen in der htaccess_simple.txt sorgen wegen den Kommentaren bei manchen Servern für einen Fehler:

Code: Alles auswählen

# Exclude following request from rewriting
# ----------------------------------------
RewriteCond %{REQUEST_FILENAME} -s [OR] # valid symlink
RewriteCond %{REQUEST_FILENAME} -l [OR] # a not empty file
RewriteCond %{REQUEST_FILENAME} -d      # a folder
RewriteRule ^.*$ - [NC,L]
Probier mal folgendes:

Code: Alles auswählen

# Exclude following request from rewriting
# tests for valid symlinks (-s), not empty files (-l) and folders (-d)
# --------------------------------------------------------------------
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d      
RewriteRule ^.*$ - [NC,L]
Bender78 hat geschrieben:...Also kann ich doch alle Verzeichnisse auf den Standard-Werten (z.B. "/cms") lassen, oder?...
Bei dir scheint es eine Standardinstallation zu sein, daher sind keine Änderungen an der .htaccess nötig.
Bender78 hat geschrieben:...Oder liegt es daran, dass mein URLs keine "idart" enthalten?
Da ich nur mit den Startartikeln arbeite, lauten die alle "front_content.php?idcat=[2-9]&lang=1"...
Um die Erstellung der Links im Frontend kümmert sich PHP (der AMR UrlBuilder), die Regeln in der .htaccess sorgen nur dafür, dass solche Clean-URLs wieder an die front_content.php "übergeben" werden, damit das Plugin sie wieder Aufdröseln kann. Wenn die URLs nicht korrekt generiert werden, liegt die Ursache nicht an der .htaccess. In der 0.5.3 er Version des Plugins gibt ein paar kleinere Bugs, eventuell ist eines davon die Ursache bei dir. Hast du dir den Bereich BEKANNTE BUGS im AMR-Startthread angesehen? Die darin beschriebenen Änderungen solltest du auf jeden Fall auch deiner Installation nachziehen.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Bender78
Beiträge: 14
Registriert: Sa 28. Mär 2009, 11:16
Kontaktdaten:

Re: ModRewrite funktioniert nicht

Beitrag von Bender78 »

So, vielen Dank erstmal, habe das Ganze Schritt für Schritt durchgegangen.

1. Wenn ich die Kommentare in der "simple"-Version entferne, kommt in der Tat keine Fehlermeldung mehr.
2. Unter "Bekannte Bugs" finde ich allerdings nichts, was auch nur im entferntesten auf mein Problem zu passen scheint, es geht dort immer um eine fehlerhafte Weiterleitung, aber in meinem Fall zuckt sich ja überhaupt nichts!

Kann man denn dadurch, dass die Testweiterleitung "RewriteRule ^ http://www.contenido.org [R,L]" funktioniert, schonmal etwas als Fehlerquelle ausgrenzen (Server, AMR, ...)?

UPDATE:
So, ich habe mal das AMR deinstalliert und die neue Version 0.5.4. installiert, und siehe da: Es rührt sich doch! :)

Wenn ich die Domain aufrufe, lande ich bei ".../willkommen/index.html", also alles super!
Wenn ich aber nun z.B. auf den ersten Menüpunkt klicke, dann ändert sich die URL in "willkommen/index.html?a=2&level=1"
Ebenso die anderen Menüpunkte: "aktuelles/index.html?a=4&level=1", "wir-ber-uns/index.html?a=5&level=1" usw. ("a" ist jeweils mein idcat, "level" meine language)

Wie kriege ich das nun noch weg?
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: ModRewrite funktioniert nicht

Beitrag von xmurrix »

Bender78 hat geschrieben:...
UPDATE:
So, ich habe mal das AMR deinstalliert und die neue Version 0.5.4. installiert, und siehe da: Es rührt sich doch! :)...
Das ist doch schon mal was Positives...
Bender78 hat geschrieben:...Wenn ich die Domain aufrufe, lande ich bei ".../willkommen/index.html", also alles super!
Wenn ich aber nun z.B. auf den ersten Menüpunkt klicke, dann ändert sich die URL in "willkommen/index.html?a=2&level=1"
Ebenso die anderen Menüpunkte: "aktuelles/index.html?a=4&level=1", "wir-ber-uns/index.html?a=5&level=1" usw. ("a" ist jeweils mein idcat, "level" meine language)...
Diese Parameter bekommst du weg, indem du das Navigationsmodul des Beispielmandanten anpasst, oder eher das Script, das unter cms/includes/Util/Modules/Contenido_NavMain_Util.class.php liegt.

Eine detaillierte Beschreibung zum Anpassen der Module des Beispielmandanten gibt es unter http://forum.contenido.org/viewtopic.php?f=66&t=23501 - Leider geht es momentan nicht ohne diese Änderungen...

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Bender78
Beiträge: 14
Registriert: Sa 28. Mär 2009, 11:16
Kontaktdaten:

Re: ModRewrite funktioniert nicht

Beitrag von Bender78 »

Hallo xmurrix,

ALLES läuft jetzt zu meiner vollsten Zufriedenheit.
Vielen Dank für deine Hilfe! :)

Ach ja, noch mal ne kurze Frage zu einem etwas anderen Thema: was ist denn eigentlich die eleganteste Lösung für die Weiterleitung auf das CMS?
Ich habe zur Zeit im root eine index.html mit einer Weiterleitung erstellt, ist so etwas sinnvoll, grade in Bezug auf die Suchmaschinen?

Gruß, Christian
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: ModRewrite funktioniert nicht

Beitrag von xmurrix »

Bender78 hat geschrieben:...
Ach ja, noch mal ne kurze Frage zu einem etwas anderen Thema: was ist denn eigentlich die eleganteste Lösung für die Weiterleitung auf das CMS?
Ich habe zur Zeit im root eine index.html mit einer Weiterleitung erstellt, ist so etwas sinnvoll, grade in Bezug auf die Suchmaschinen?...
Wenn du keine Introseite benötigst ist, wäre es sinnvoll, die index.html aus dem Root zu entfernen.

Aus SEO-Sicht sollte eine Weiterleitung mit der header-Direktive und dem HTTP-Status Code 301 kein Problem sein, also mit header('Location: /cms/', 301);.
Am Besten wäre es aber, wenn du ganz darauf verzichtest.

Normalerweise brauchst du keine index.html im root, falls du die .htaccess dort hast und in der .htaccess die RewriteBase auf /cms gesetzt ist. Dann landen sowieso alle Request, die umschrieben werden, im Verzeichnis /cms.

Intern sieht die Ordner Struktur so aus:

Code: Alles auswählen

wwwroot/
    contenido/
    cms/
    ...
    .htaccess
Ruft der User dann die Seite ohne Pfad auf (http://domain/), wird intern auf /cms/ umschrieben.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Bender78
Beiträge: 14
Registriert: Sa 28. Mär 2009, 11:16
Kontaktdaten:

Re: ModRewrite funktioniert nicht

Beitrag von Bender78 »

Jupp, klappt alles wie gesagt, danke für diesen kleinen Crash-Kurs mit Contenido :)
Gruß
Gesperrt