universelle rewrite rule für CPO4? Hat das jemand?

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Eichi hat geschrieben:Wäre es auch möglich den Titel vom Artikel in die URL einzubauen?

Bspw.: http://www.pixelleben.de/posting/titel_ ... ikels.html
(posting = detail.php)
Das ist bestimmt möglich, dazu bräuchtest du noch MarkusR seine Modifikation für den Artikelaufruf mittels Titel. http://community.conpresso.de/viewtopic.php?t=3045

Aber es fehlt bei deiner URL noch die Rubrikangabe, die sehr wichtig ist, da ein Titel nicht eindeutig ist im Gegensatz zur Artikelnummer.

Gruß Matthias
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

das habe ich 'mal lieber sein lassen, denn da geht die Eindeutigkeit verloren!!
Schließlich können mehrere Artikel den gleichen Titel haben - bei mir ist dieser bspw. oft einfach leer.

[Edit: Sorry, mein Post hat sich mit Matthias' überschnitten]
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Also, ich probier's 'mal...

Zunächst einmal solltest du dir überlegen, wie die URLs aussehen sollen, die umgeschrieben werden sollen. Insbesondere ist auf Eindeutigkeit zu achten.
Wenn du deine Rewrite-Regeln getestet hast und sie fehlerfrei funktionieren, dann erst kannst du dich um die Menüerzeugung kümmern.

In meinen Beispielen soll am Ende etwas herauskommen in der Form

http://www.domain.tld/rubrikverzeichnis/rubrikname.html

bzw. nach dem Rewrite:

http://www.domain.tld/rubrikverzeichnis ... rubrikname


Im einfachsten Fall hast du nur ein einziges Rubrikverzeichnis, nämlich "_rubric". Dann würdest du vermutlich folgende rewrite-Regel in deiner .htaccess-Datei definieren wollen:

Code: Alles auswählen

Options -MultiViews
RewriteEngine on
RewriteRule ^(.+)/(.+)\.html$ /$1/index.php?rubric=$2
Das hatte aber bei mir mehrmals und bei verschiedenen Providern ganz komische Effekte, ein normales Arbeiten im Backend war nicht mehr möglich.
Lösung: Gib das Rubrkverzeichnis explizit an:

Code: Alles auswählen

Options -MultiViews
RewriteEngine on
RewriteRule ^_rubric/(.+)\.html$ /_rubric/index.php?rubric=$1
Wenn du mehrere Rubrikverzeichnisse hast - in diesem Fall _rubric, _Home, _sitemap, _subrubric, mod_search - sähe die .htaccess-Datei so aus:

Code: Alles auswählen

Options -MultiViews
RewriteEngine on
RewriteRule ^_home/(.+)\.html$ /_home/index.php?rubric=$1
RewriteRule ^_rubric/(.+)\.html$ /_rubric/index.php?rubric=$1
RewriteRule ^_subrubric/(.+)\.html$ /_subrubric/index.php?rubric=$1
RewriteRule ^_sitemap/(.+)\.html$ /_sitemap/index.php?rubric=$1
RewriteRule ^mod_search/(.+)\.html$ /mod_search/index.php?rubric=$1
Jetzt wirst du vielleicht einwerfen, "das ist ja blöd, da muss ich später immer auch die .htaccess anpassen, wenn ich ein neues Rubrikverzeichnis anlege, bspw. indem ich ein weiteres Modul einsetze!!". Da hättest du völlig Recht! Aber auch dafür gibt's 'ne Lösung. Meine sieht so aus, dass ich den Namen von Rubrikverzeichnissen (gilt dann auch für Module, die als Rubrik angesprochen werden) nie mit einem Unterstrich (_) beginnen lasse, sodass ich ALLE nicht mit Unterstrich beginnenden URLs umschreibe - hier die entspr. .htaccess mit zusätzlich den Fehlerabfangseiten:

Code: Alles auswählen

Options -MultiViews
RewriteEngine on
RewriteRule ^([^_].+)/(.+)\.html$ /$1/index.php?rubric=$2

ErrorDocument 401 http://www.domain.tld/de/index.php?rubric=Home_de
ErrorDocument 402 http://www.domain.tld/de/index.php?rubric=Home_de
ErrorDocument 403 http://www.domain.tld/de/index.php?rubric=Home_de
ErrorDocument 404 http://www.domain.tld/de/index.php?rubric=Home_de
So, jetzt zu den Anpassungen an der Menü-Erzeugung.

1. Bei mod_menu (von MarkusR / conpresso4.de):

Siehe oben in diesem Thread (http://community.conpresso.de/viewtopic ... 9293#19293), allerdings können die Zeilenzahlen abweichen. Wenn die von euch benutzte Version von mod_menu diese Option bereits bietet, sollte in den Moduleinstellungen "Link zur Rubrik" auf "Rubrik-Name" eingestellt sein, nicht auf "Rubrik-Nummer".


2. Bei Einsatz von printnavigation():

Da habe ich die Zeilen 97 und 102 der Datei /_include/printnavigation.inc.php geändert von

Code: Alles auswählen

$link = BASE_URL.$v['rubric']['directory'].'/index.php/'.urlencode($v['rubric']['name']);
bzw.

Code: Alles auswählen

$link = BASE_URL.$v['rubric']['directory'].'/index.php?rubric='.urlencode($v['rubric']['name']);
zu beidesmal

Code: Alles auswählen

$link = BASE_URL.$v['rubric']['directory'].'/'.urlencode($v['rubric']['name'].'.html');
(Leider habe ich zurzeit keinen Zugriff auf das System, wo ich die angepasste printnavigation.inc.php im Einsatz habe - keine FTP-Daten. Aber wenn ich mich nicht vollkommen täusche, müsste das die vorgenommene Änderung sein - ich lass' mich gerne berichtigen)
Benutzeravatar
Eichi
ConPresso-Checker
Beiträge: 133
Registriert: 17.08.2005 13:14
Hat sich bedankt: 24 Mal
Danksagung erhalten: 8 Mal
Kontaktdaten:

Beitrag von Eichi »

Danke Mr. Magpie, das funktioniert beim ersten kurzen probieren schon recht gut.

Ich muss nur erstmal meine Navigation umbauen, da ich noch aus Uraltzeiten ein Snippet benutze was gut funktioniert und ich die Unternavigationen fein aufs Layout verteilen konnte. Ich war bei den Designänderungen immer zu bequem das mal "umzustellen". (Den Salat hab ich nun... :D )

Was mich aber interessieren würde: Kann ich dies jetzt auch noch auf den Rest der Seite anwenden? Da ich mein CPO als Blog-Software mißbrauche, habe ich quasi nur eine Rubrik in der ich Artikel veröffentliche. Die Überschrift vom Artikel dient gleichzeitig als Link in den Artikeltext, das ich explizit Links einzelne Artikel angeben kann.

Bspw.: http://www.pixelleben.de/_rubric/detail.php?nr=1074
(Das scheint aber schon nicht ganz konform zu sein, weil die Rubrik fehlt - aber es funktioniert!)

Schön wäre selbes Muster wie in der Navigation:
http://www.pixelleben.de/aus+dem+leben/Bastelspass.html

Wäre im Prinzip schon das was MarkusR angerissen hat, aber ohne das ganze "drumrum".

Ich stell das einfach mal "dreist" in den Raum. Ich selbst bekomm sowas mangelst Programmierkenntnisse nicht auf die Reihe.
pixel&leben - Er fand einen neuen Kunstbegriff - damals, als er Kunst begriff.
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Okay, Markus' Beispiel war

http://www.kft-online.de/_rubric/detail ... eportraits

übersetzt in das, was du haben willst:

http://www.kft-online.de/Rasseportraits ... rrier.html

richtig?

Aber wie soll hier die Rewrite-Regel unterscheiden zwischen dem Detailseiten-Aufruf und dem Rubrikseiten-Aufruf wie ich ihn oben gemacht habe?
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Wichtiger Hinweis: Wer meine obige Rewrite-Regel einsetzt, wird merken, dass die Context-Hilfe von Conpresso (4.0.7) nicht mehr richtig funktioniert.

Abhilfe schafft eine kleine Fehlerbereinigung von _manual/index.php, die bereits hier als Debug berichtet wurde.
Benutzeravatar
Eichi
ConPresso-Checker
Beiträge: 133
Registriert: 17.08.2005 13:14
Hat sich bedankt: 24 Mal
Danksagung erhalten: 8 Mal
Kontaktdaten:

Beitrag von Eichi »

Mr. Magpie hat geschrieben:Okay, Markus' Beispiel war

http://www.kft-online.de/_rubric/detail ... eportraits

übersetzt in das, was du haben willst:

http://www.kft-online.de/Rasseportraits ... rrier.html

richtig?

Aber wie soll hier die Rewrite-Regel unterscheiden zwischen dem Detailseiten-Aufruf und dem Rubrikseiten-Aufruf wie ich ihn oben gemacht habe?
Genau das war meine Frage. :)

Kann man nicht auch diesen Link einfach "umformen" oder bedarf es hier einer tieferen Änderung in ConPresso?
pixel&leben - Er fand einen neuen Kunstbegriff - damals, als er Kunst begriff.
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Wenn du einfach den Link umformen willst, dann müsstest du einiges in Conpresso umschreiben.
Vielleicht würde es auch reichen so etwas ähnliche zu machen, wie MarkusR mit dem Artikelaufruf über den Artikeltitel gemacht hat.

Es ist dadurch auch die Anpassung einiger Module erforderlich.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
Eichi
ConPresso-Checker
Beiträge: 133
Registriert: 17.08.2005 13:14
Hat sich bedankt: 24 Mal
Danksagung erhalten: 8 Mal
Kontaktdaten:

Beitrag von Eichi »

Den "Hack" von Markus hab ich gestern gleich mit übernommen, das sollte für Suchmaschinen schon ein wenig besser sein. Es ist selten das eine Suchmaschine direkt den einzelnen Artikel indexiert hat, meist ladet man nur direkt in der Rubrik auf einer der hinteren Seiten. Dadurch das ich aber quasi min. 5 Artikel die Woche schreibe verschiebt sich das sehr schnell. :?

Na ok, ich belasse es jetzt erstmal so wie es ist. SEO ist ja auch nicht unbedingt das Thema in diesem Thread, möchte hier nichts ins Offtopic reißen.

Die Regel von Mr. Magpie funktioniert auf jedenfall sehr gut! Danke nochmal ...
pixel&leben - Er fand einen neuen Kunstbegriff - damals, als er Kunst begriff.
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Natürlich müsste man einiges bei Conpresso umschreiben, um solche Links auf Detailseiten automatisch zu erstellen. Ich habe Markus' "Hack" so verstanden, dass er die speziellen Links auf die Detailseiten manuell erstellt und i_detail.php quasi kapiert, was es damit machen soll, nämlich die Detailseite zu ermitteln.

Auf was ich aber hinaus wollte: Du könntest doch die Rewrite-Regel(n) ein wenig so ändern, dass du eine SEO-URL wie

http://www.kft-online.de/Details/Rasseportraits/manchester+terrier.html

o.ä. verwenden kannst. Die Rewrite-Regel sollte die SEO-URL so umschreiben, dass die gepimpte i_detail.php sie "versteht".

[EDIT: ich hatte in meiner ersten Formulierung dieses Posts etwas verdreht, ist nun aber so wie ich's meinte :? ]
job82
ConPresso-Newbie
Beiträge: 6
Registriert: 14.06.2007 11:59
Hat sich bedankt: 1 Mal

mod_rewrite download

Beitrag von job82 »

Servus Leute,
es gab doch mal den mod_rewrite als Download. Ich finde ihn nirgendwo mehr. Gibt es das Modul noch irgendwo?
Viele Grüße
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Obwohl ich mich natürlich täuschen kann, so glaub' ich, du verwechselt da die ConPresso-Module mit den Apache-Webservermodulen wie eben das mod_rewrite.
Die vorgestellten Rewrite-Regeln fußen auf dem Apache-Modul, es ist also kein Modul, das man in ConPresso installieren kann.

Wenn du Hilfe brauchst in Sachen Rewrite-Regeln für ConPresso, helfe ich dir gerne.
Günther Ludwig
job82
ConPresso-Newbie
Beiträge: 6
Registriert: 14.06.2007 11:59
Hat sich bedankt: 1 Mal

Beitrag von job82 »

Ah, okay, danke. Dachte immer, da gibt es eine Automatik für...
Antworten