ARM mit eigenen SEO Urls für ein Plugin

Gesperrt
csandro
Beiträge: 44
Registriert: Mo 30. Jan 2012, 02:25
Kontaktdaten:

ARM mit eigenen SEO Urls für ein Plugin

Beitrag von csandro » Di 10. Jul 2012, 13:30

Hi,

ich habe ein Galerie Plugin für Contenido 4.8.15 erstellt, was so auch erstmal super funktioniert. Allerdings ist Voraussetzung, das die Galerien über SEO Urls zu erreichen sind.

Für das Frontend habe ich also ein Modul erstellt, welches die Galerien und Bilder entsprechend ihrer IDs anzeigt. Wenn ich nun das ARM Plugin einschalte werden mir die Links auch erstmal richtig umgewandelt, allerdings natürlich nicht mit der von mir übergebenen ID.

Meine URL erzeugung sieht momentan folgendermaßen aus

Code: Alles auswählen

$sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid&galleryID=".$db->f("galleryID"))
umgewandelte URL sieht momentan so aus

Code: Alles auswählen

galerie/galerie.html?galleryID=4
Dies soll allerdings nicht so sein, ich würde gerne meine eigene URL wie z.B. wie folgt haben

Code: Alles auswählen

galerie/urlaub2003/gallery_4.html
Der Teil "urlaub2003" wird nicht ausgewertet, sondern dient lediglich für das visuelle aussehen des Links, was auch so sein muss.
Leider konnte ich bisher bisher keine Möglichkeit finden diese Linkart in Contenido umzusetzten bzw. dass dann auch das Galerie Modul angezeigt wird.

Ich hatte mir das wohl zu einfach vorgestellt mit dem mod_rewrite, ich dachte dort gibts auch einfach eine Regel die die URL umschreibt, etwa so

Code: Alles auswählen

RewriteRule ^([a-z]+)/([a-zA-Z0-9\-_]+).html$ front_contend.php?kategorie=$1&artikel=$2 [L]
da hätte ich ja dann einfach meine eigene Regel hinzufügen können, allerdings wird ja alles über PHP mit der REQUEST_URI gemacht und durch das AMR Plugin bin ich noch nicht durchgestiegen, wo ich da ggf. was ändern könnte, damit meine Links richtig funktionieren.

Ich hoffe das meine Frage nicht zu verwirrend geschrieben ist und jemand mir Lösungsansätze liefern kann.
Vielen Dank.

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: ARM mit eigenen SEO Urls für ein Plugin

Beitrag von Spider IT » Di 10. Jul 2012, 14:25

Hallo csandro,

wie du die URLs so hinbekommen kannst kann ich dir nicht sagen.
Die Auswertung der dann erzeugten Links müsste aber tatsächlich über die .htaccess funktionieren (nicht getestet):

Code: Alles auswählen

RewriteRule ^galerie/([a-zA-Z0-9]+)/gallery_([0-9]+)/{0,1}$ galerie/galerie.html?galleryID=$2 [QSA,L]
Eine direkte Umleitung auf die front_content.php wirst du so nicht hinbekommen, denn dafür bräuchtest du die idcat und idart als Zahlen (die sind in der URL als Kategorie- und Artikelnamen).
Das erledigt dann aber AMR durch die Umleitung zur front_content.php unten in der .htaccess.

Gruß
René

csandro
Beiträge: 44
Registriert: Mo 30. Jan 2012, 02:25
Kontaktdaten:

Re: ARM mit eigenen SEO Urls für ein Plugin

Beitrag von csandro » Di 10. Jul 2012, 17:48

Hallo Spider IT,

vielen Dank erstmal für die Antwort, aber dies war bereits mein erster Ansatz. Einfach eine weitere Regel in der htacces einzufügen, allerdings wird diese leider nie berücksichtigt. Sehr merkwürdig finde ich auch das sie manchmal anscheint teilweise funktioniert.

Gebe ich z.B.

Code: Alles auswählen

galerie/bmw/gallery_2.html
in die Adressleiste ein, so wird zumindest das Galerie Modul geladen, wenn ich jedoch statt bmw z.B. audi schreibe, wird auf die default Startseite weiter geleitet. Leider wird auch keine ID übergeben.

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

Re: ARM mit eigenen SEO Urls für ein Plugin

Beitrag von xmurrix » Di 10. Jul 2012, 23:07

Hallo csandeo,

die einfachste Lösung ist, die URLs im Modul oder Plugin ohne den UrlBuilder auszugeben, also gleich als Clean-URL

Code: Alles auswählen

<a href="/galerie/urlaub2003/tag1.html">Urlaub 2003</a><br />

<a href="/galerie/urlaub2004/tag2.html">Urlaub 2004</a>
Dann reicht es aus, in der .htaccess vor der letzten RerwriteRule folgende Zeile einzufügen:

Code: Alles auswählen

RewriteRule ^galerie/([a-zA-Z0-9]+)/([a-zA-Z0-9_\-]+).html$ front_content.php?idcat=123&alias=$2 [QSA,L]
Im Beispiel oben ist idcat=123 angegeben, dies sollte dann gegen die richtige Kategorie Id oder Artikel Id umgestellt werden, in der das Galerie Modul integriert ist.

Einziger Nachteil dabei ist, dass man den regulären Weg über den UrlBuilder umgeht. Wenn man dennoch den UrlBuilder verwenden möchte, geht die Anpassung der generierten Urls über die Chain "Contenido.Frontend.PostprocessUrlBuilding", hier ein Beispiel:
http://forum.contenido.org/viewtopic.ph ... 43#p147943

Grüße
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.

Gesperrt