Plugin Advanced Mod Rewrite für Contenido 4.8.x

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Mo 17. Jan 2011, 22:33

rethus hat geschrieben:Wie schauts beim Upgrading des AMR-Moduls aus.
Das Modul zu installieren ist ja die eine Sache, aber nach einem Contenido-Upgrade wieder alles einzurichten die andere Sache.
Hallo rethus,
man könnte die Ganze Sache mit den Updates sicherlich etwas einfacher gestalten, auch für Sysadmins.

Andererseits sind die Updates, z. B. vom AMR-Plugin auch nicht sehr aufwändig.
  • Upgrade von AMR bei gleicher Vontenido Version
    - Kopieren des neuen Plugins nach contenido/plugins/mod_rewrite (nicht vergessen contenido/classes/mp und cms/)
    - Aufrufen des Plugininstallers contenido/plugins/mod_rewrite/install.php
    - Anmelden im Backend
    - Falls nach der Anmeldung keine Weiterleitung zum Plugininstaller stattfindet, einfach die URL manuell aufrufen, dabei den Parameter contenido mit der Session-Id anhängen
    - Plugin updaten
    Das war es eigentlich. Eine vorhandene vorherige Konfiguration des Plugins ist weiterhin gültig, man muss das Plugin nicht erneut konfigurieren.
  • Upgrade von Contendio bei gleicher AMR-Version
    Bei einem Contenido-Update ist eine erneute Installation des Plugins nötig, das geht momentan nicht anders. Nach dem Update von Contenido, sind die gleichen Schritte wie von oben durchzuführen, du kannst aber das Übertragen der Pluginsourcen auslassen, da diese vorhanden sind:
    - Contenido updaten
    - Aufrufen des Plugininstallers contenido/plugins/mod_rewrite/install.php
    - Anmelden im Backend
    - Falls nach der Anmeldung keine Weiterleitung zum Plugininstaller stattfindet, einfach die URL manuell aufrufen, dabei den Parameter contenido mit der Session-Id anhängen
    - Plugin installieren
    Auch hier muss man das Plugin nicht erneut konfigurieren.
  • Upgrade von AMR und Contenido auf neuere Version
    Hierbei sind die Schritte folgendermaßen:
    - Contenido updaten
    - Kopieren des neuen Plugins nach contenido/plugins/mod_rewrite (nicht vergessen contenido/classes/mp und cms/)
    - Aufrufen des Plugininstallers contenido/plugins/mod_rewrite/install.php
    - Anmelden im Backend
    - Falls nach der Anmeldung keine Weiterleitung zum Plugininstaller stattfindet, einfach die URL manuell aufrufen, dabei den Parameter contenido mit der Session-Id anhängen
    - Plugin installieren
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.

20082009
Beiträge: 116
Registriert: So 5. Okt 2008, 09:58
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von 20082009 » Do 3. Feb 2011, 16:42

Hallo,
benutze 4.8.14 mit AMR

Warum bekomme ich die Links bei der MetaNavi so angezeigt : www.domain.de/kategorienname
so wäre es je optimal


in der MainNavi bekomme ich aber: www.domain.de/kategoriename/titel (titel der unter Eigenschaften eingegeben wird)

?


Gruß

absoluto
Beiträge: 71
Registriert: Mo 1. Mär 2004, 16:59
Wohnort: hanau
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von absoluto » Fr 4. Feb 2011, 17:37

hi murrix.

erstmal DANKE fuer dieses essentielle modul! unglaublich, dass das nicht schon laengst fest in contenido integriert ist - ohne kann man contenido ja nicht einsetzen!

so, ich habe aber auch eine frage dazu. haben dein modul 0.5.5 im einsatz unter 4.8.14. alles funzt wunderbar. jetzt gibt es aber die anforderung bei nicht existierenden seiten auf eine eigene 404-seite zu verweisen. soweit auch kein problem. die 404-seite ist im cms eigens dafuer angelegt. bei der konfiguration deines moduls kann ich ja ein haeckchen setzen, ob bei fehlerhaften seiten auf diese (unter "administration/mandanten/eigenschaften" definierte 404-seite) weitergeleitet werden soll. alternativ wird die startseite angezeigt. beide varianten habe ich ausprobiert.

mein problem:
der status des "HTTP Response Headers" zeigt immer "200 OK" (liegt wohl daran, dass die 404-seite aufgrund deines modules ja korrekt geladen und gefunden wird), obwohl das fuer die suchmaschinen "404 document not found" sein muesste - da die eigentlich eingegebene seite ja NICHT existiert. und ueber htaccess kann ich die weiterleitung deines modules (startseite oder fehlerseite) nicht ueberschreiben! ich benoetige also die funktion, dass die fehlerseite ueber "404" ausgegeben wird und nicht ueber "200". geht das? ;-)

lange rede, (hoffentlich verstaendlicher?) sinn. wuerde mich ueber eine kleine antwort SEHR freuen, da ich nicht weiss, wie ich das sonst loesen kann!!!

merci und schoene gruesse,
martin

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Fr 4. Feb 2011, 22:30

20082009 hat geschrieben:...Warum bekomme ich die Links bei der MetaNavi so angezeigt : http://www.domain.de/kategorienname
so wäre es je optimal

in der MainNavi bekomme ich aber: http://www.domain.de/kategoriename/titel (titel der unter Eigenschaften eingegeben wird)
...
In der Metanavigation wird die URL mit der ID der Kategorie generiert, also mit front_content.php?idcat=123. Wenn du die URL mit der Artikelid (idart) oder Kategorieartikelid (idcatart), sollte der Artikelalias auch in der Metanavigation erscheinen.
Alternativ kannst du es mit der AMR-Einstellung "Artikelname immer an die URLs anhängen (auch bei URLs zu Kategorien)" probieren. Dann würde ich aber auch die Einstellung "Dateiendung am Ende der URL" verwenden - sonst wird es etwas problematisch.

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.

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Fr 4. Feb 2011, 23:11

absoluto hat geschrieben:...so, ich habe aber auch eine frage dazu. haben dein modul 0.5.5 im einsatz unter 4.8.14. alles funzt wunderbar. jetzt gibt es aber die anforderung bei nicht existierenden seiten auf eine eigene 404-seite zu verweisen. soweit auch kein problem. die 404-seite ist im cms eigens dafuer angelegt. bei der konfiguration deines moduls kann ich ja ein haeckchen setzen, ob bei fehlerhaften seiten auf diese (unter "administration/mandanten/eigenschaften" definierte 404-seite) weitergeleitet werden soll. alternativ wird die startseite angezeigt. beide varianten habe ich ausprobiert.

mein problem:
der status des "HTTP Response Headers" zeigt immer "200 OK" (liegt wohl daran, dass die 404-seite aufgrund deines modules ja korrekt geladen und gefunden wird), obwohl das fuer die suchmaschinen "404 document not found" sein muesste - da die eigentlich eingegebene seite ja NICHT existiert. und ueber htaccess kann ich die weiterleitung deines modules (startseite oder fehlerseite) nicht ueberschreiben! ich benoetige also die funktion, dass die fehlerseite ueber "404" ausgegeben wird und nicht ueber "200". geht das? ;-)
...
Hallo absoluto,

die Weiterleitung zur der in Contenido konfigurierten Fehlerseite wird in der front_content.php, überall dort, wo header($errsite); vorkommt, durchgeführt. Hier kannst du meines wissens, keinen Statuscode 404 angeben, da hier eine Weiterleitung mit der header-direktive gemacht wird.
Was du machen kannst, ist die Ausgabe eines 404 in der front_content.php, falls die aktuelle Kategorie-/Artikelid der der Fehlerseite entspricht, also in der front_content.php Zeile 253 und ff. wie folgt erweitern:

Code: Alles auswählen

$errsite = 'Location: ' . Contenido_Url::getInstance()->buildRedirect($aParams);
if ($idcat == $errsite_idcat[$client] && $idart == $errsite_idart[$client]) {
    header('HTTP/1.0 404');
}
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.

absoluto
Beiträge: 71
Registriert: Mo 1. Mär 2004, 16:59
Wohnort: hanau
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von absoluto » Sa 5. Feb 2011, 09:47

hallo murat.

KLASSE - vielen dank! werde ich gleich am montag morgen mal ausprobieren und nochmal kurz feedback geben. habe am WE leider keinen ftp zugriff auf die seite...
merci again.

gruss, martin

Supporter
Beiträge: 124
Registriert: Mo 12. Mai 2008, 14:21
Wohnort: In the middle of something...
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von Supporter » Fr 11. Feb 2011, 15:53

Hallo xmurrix

Schon ziemlich lange her, dass ich hier unterwegs war und ich ziehe den Hut davor, dass Du noch immer an dem Plugin dran bist...

Mir ist aufgefallen, jedenfalls in der Version 4.8.12 (die hatte ich zuletzt im Einsatz), dass das ModRewrite bei Verwendung mit mehreren Mandanten allen Artikeln mit gleicher Bezeichnung Zahlen dranhängt.

Vergleich:

Code: Alles auswählen

www.url1.tld/cat/sample.htm
www.url2.tld/cat/sample1.htm
Ich habe mich nun nicht intensiv mit dem Plugin auseinandergesetzt, aber liegt das eventuell an den Einstellungen vom ModRewrite oder ist das eventuell ein "Problem" dass auf die Machart des Plugins zurück zu führen ist?

Gruß
Ειμαστε στη μεση απο κατι...

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Fr 11. Feb 2011, 21:38

Hallo Supporter,

eigentlich sollte das Plugin nur sicherstellen, dass Artikel oder Kategorien einen eindeutigen Alias bekommen. Das sollte sich aber nur auf einen Mandanten beschränken. Wenn das auch Mandantenübergreifend passiert, ist das ein Bug.

Werde es mir ansehen und gegebenenfalls beheben..

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.

Supporter
Beiträge: 124
Registriert: Mo 12. Mai 2008, 14:21
Wohnort: In the middle of something...
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von Supporter » Sa 12. Feb 2011, 09:17

Hallo xmurrix

Danke für die schnelle Antwort. Ja, sowas in der Art hatte ich auch im Sinn, aber warte ruhig damit. Ich bin ohnehin gerade dabei ein neues System mit mehreren Mandanten umzusetzen und würde Dir dann einfach Rückmeldung geben. Das wird so in etwa noch zwei oder drei Tage dauern.

Viele Grüße
Ειμαστε στη μεση απο κατι...

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von stefkey » Mi 23. Feb 2011, 13:11

Hallo,

ich möchte das bei einem Aufruf einer nicht existieren Kategorie/Artikel die Standardfehlerseite des Apache aufgerufen wird. Contenido oder auch das MR-Modul leiten ja auf die Startseite bzw. eigene Fehlerseite weiter. Ist das überhaupt möglich?

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Mi 23. Feb 2011, 22:07

stefkey hat geschrieben:...möchte das bei einem Aufruf einer nicht existieren Kategorie/Artikel die Standardfehlerseite des Apache aufgerufen wird. Contenido oder auch das MR-Modul leiten ja auf die Startseite bzw. eigene Fehlerseite weiter...
Wenn Apaches mod_rewrite die Anfrage an den PHP Interpreter weiterleitet, das ist ja dann der Fall, wenn man Contenido auf Clean-URLs umstellt, dann kann man von PHP aus nicht mehr dem Webserver mitteilen, dass dieser die Fehlerseite ausliefern soll.

Das würde nur dann klappen, wenn Apache direkt die ankommende Anfrage mit vordefinierten Regeln prüft und keines der Regel wirken. Du müsstest also für alle vorhandenen Clean-URLs eine mod_rewrite Regel in der .htaccess definieren. Wenn keines davon passt, wird Apache die konfiguerierte Standard-Fehlerseite ausliefern.

Alternativ kannst du auch im Web-Verzeichnis eine statische Fehlerseite (z. B. error404.html) ablegen, in der .htaccess eine Regel

Code: Alles auswählen

ErrorDocument 404 /error404.html
dafür angeben und in der cms/front_content.php die Ausgabe der Fehlerseite gegen

Code: Alles auswählen

header("HTTP/1.0 404 Not Found");
include_once('error404.html');
exit();
ersetzen.

Musst halt nach einem Update die front_content.php wieder anpassen.

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.

McHubi
Beiträge: 1210
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von McHubi » Do 3. Mär 2011, 20:04

Hallo zusammen,

Contenido 4.8.14, AMR 0.5.5

Ich nutze folgendes - also mein - Bildergaleriemodul: http://forum.contenido.org/viewtopic.php?f=60&t=25534

Die Links zu den Bildern sehen z. B. so aus:

Code: Alles auswählen

http://www.stollenbiker.de/fotos-videos/2010/fotos---2010---detail.html?verzeichnis=upload/bildergalerien/2010/&dateiname=2010-03-04_P1080780.jpg&seite=0&anzahl_bilder_pro_seite=12&sortierung_absteigend=
Wenn AMR nicht aktiviert ist, erfolgt auch eine entsprechende Übergabe/ Anzeige in der Adresszeile des Browsers. Auch der Validator ist happy. :D

Sobald AMR aktiviert ist, wird daraus jedoch

Code: Alles auswählen

http://www.stollenbiker.de/fotos-videos/2010/fotos---2010---detail.html?verzeichnis=upload%2Fbildergalerien%2F2010%2F&dateiname=2010-03-04_P1080780.jpg&seite=0&anzahl_bilder_pro_seite=12&sortierung_absteigend=
In der Info zum Linkziel am unteren Rand des Browserfensters ist der Link noch korrekt mit "/" statt "%2F".

Das hat zwar auf die Funktionalität keinen Einfluss, allerdings pampt mich der Validator mit dieser Warnung an: cannot generate system identifier for general entity "dateiname"
Ob das am geänderten "/" liegt wag ich zu bezweifeln - denn im Hinweis zur Warnung steht folgendes: An entity reference was found in the document, but there is no reference by that name defined. Often this is caused by misspelling the reference name, unencoded ampersands,
Und dann folgt die passende Fehlermeldung: general entity "dateiname" not defined and no default entity

Der Hase liegt vermutlich bei den unencoded ampersands im Pfeffer begraben. Am Modul liegt es jedoch nicht, da hier alle & in der Link-URL durch & ersetzt sind.

------

Das Gleiche passiert bei der im Demomandanten mitgelieferten Sitemap.

Hier sieht ein Link z. B. so aus:

Code: Alles auswählen

http://www.stollenbiker.de/stollenbiker/markus/stollenbiker-markus.html?a=35&level=1
Der Validator spuckt hier die gleiche Warnung aus: cannot generate system identifier for general entity "level"
Und auch der Hinweis ist gleich: An entity reference was found in the document, but there is no reference by that name defined. Often this is caused by misspelling the reference name, unencoded ampersands,
Gefolgt von der gleichen Fehlermeldung: general entity "level" not defined and no default entity


Kann es sein, dass im Plugin beim Neuaufbau der URL ein & nicht durch & ersetzt wird? :shock:
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Do 3. Mär 2011, 20:53

McHubi hat geschrieben: ...Wenn AMR nicht aktiviert ist, erfolgt auch eine entsprechende Übergabe/ Anzeige in der Adresszeile des Browsers. Auch der Validator ist happy....

...In der Info zum Linkziel am unteren Rand des Browserfensters ist der Link noch korrekt mit "/" statt "%2F"....
Hallo McHubi,
es is in Ordnung, wenn die Zeichen "/" im Query-Teil der URL zu "%2F" kodiert werden. Wenn man das nicht macht, können manche Zeichen im Query-Teil falsch interpretiert und fehlerhaft an den Server übergeben werden

McHubi hat geschrieben:...Kann es sein, dass im Plugin beim Neuaufbau der URL ein & nicht durch & ersetzt wird? ...
Ja, es ist ein Bug im AMR-Plugin und sehr wahrscheinlich auch die Ursache für die Fehlermeldung des Validators. Schau dir mal den Startbeitrag des Plugins dazu an, unter "BEKANNTE BUGS" findest du gleich als ersten Eintrag eine Anleitung zum Lösen des Problems.

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.

McHubi
Beiträge: 1210
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von McHubi » Do 3. Mär 2011, 21:25

Hallo xmurrix,

Nenne er mich BLINDFISCH!!!! :oops:

Danke für den Hinweis. Jetzt ist alles bestens... :D
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

CharlyBrown
Beiträge: 77
Registriert: Sa 13. Feb 2010, 16:07
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von CharlyBrown » Fr 25. Mär 2011, 12:57

Hallo,

also das Modul ist wirklich gut! Großes Lob. Bitte steinigt mich nicht, falls meine Frage auf eine der vorherigen 75 Seiten nicht schon mal beantwortet wurde:

Die URL´s werden ja jetzt intern umgeschrieben. Hab im Google Index jetzt noch eine alte Seite stehen á la:

www.domainname.de/front_content.php?idart=22

Wenn ich draufklicke wird diese URL auch noch in der Adresszeile angegeben, obwohl die eigentliche Seite unter

www.domainname.de/kategoriename/namevonidart22.html

in der Navigation oder bei internen Links umgeschrieben wird. Was muss ich beachten, damit auch diese externen Links umgeschrieben werden? Hoffe Ihr versteht, was ich meine.

Danke für Hinweise!

Frank

Gesperrt