Seite 2 von 4
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Fr 13. Mär 2009, 08:53
von chpulat
Ich hätte da auch mal ne Frage.
Ich würde gerne die "SEO" urls aktivieren, aber es funzt nicht. meine vermutung ist, dass die .htaccess das ganze nicht ordentlich weiterleitet, bzw konvertiert.
Weiteres Problem, das ganze liegt auf einem 1und1 server...
die config.misc.php habe cih schon entsprechend geändert und die neuen urls werden schon generiert.
contenido liegt unter domain.de/neu/ (also domain.de/neu/cms usw...)
die .htaccess kann nicht ins root verzeichnis, da dann die alte contenidoversion (4.2) nicht mehr geht und die soll ja laufen, bis ich fertig bin.
nur die böse .htacces halt nicht.
Code: Alles auswählen
# folgende zeilen sind bei 1und1.de zu aktivieren, damit PHP5 moeglich ist
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
<IfModule mod_rewrite.c>
# rewrite engine aktivieren
RewriteEngine on
# rewrite base angeben, noetig bei manchen providern
RewriteBase /neu
# requests zu front_content.php vom umschreiben ausschliessen
RewriteRule ^front_content.php.*$ - [L]
# request zum root-verzeichnis
#RewriteRule ^$ front_content.php [QSA,L]
# requests nach dem muster /Was-ist-Contenido/rocknroll,a,2.4fb umschreiben
RewriteRule ^(.*)/index,a,([0-9]+)\.html$ /cms/front_content.php?idcat=$2 [NC,QSA,L]
</IfModule>
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Di 17. Mär 2009, 11:24
von chpulat
kann mir denn niemand helfen? Oder zumindest anhaltspunkte nennen unter denen ich selber suchen kann? Oder Erfahrungswerte mit 1und1?

Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Di 17. Mär 2009, 14:17
von xmurrix
Hallo,
chpulat hat geschrieben:...
Code: Alles auswählen
...
# rewrite base angeben, noetig bei manchen providern
RewriteBase /neu
...
# requests nach dem muster /Was-ist-Contenido/rocknroll,a,2.4fb umschreiben
RewriteRule ^(.*)/index,a,([0-9]+)\.html$ /cms/front_content.php?idcat=$2 [NC,QSA,L]
</IfModule>
Wenn du als RewriteBase /neu verwendest, muss die RewriteRule
Code: Alles auswählen
RewriteRule ^(.*)/index,a,([0-9]+)\.html$ front_content.php?idcat=$2 [NC,QSA,L]
lauten.
Das Apache mod rewrite Modul macht darau RewriteBase + Ziel, also /neu/front_content.php.
Gruß
xmurrix
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Di 17. Mär 2009, 15:11
von chpulat
mhh okay. Aber geht trotzdem nicht. Die nav_main erzeugt folgende links:
Code: Alles auswählen
http://domain.de/neu/cms/EINEUNTERKATEGORIE/index-a-5.html
die .htaccess sieht so aus:
Code: Alles auswählen
# folgende zeilen sind bei 1und1.de zu aktivieren, damit PHP5 moeglich ist
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
<IfModule mod_rewrite.c>
# rewrite engine aktivieren
RewriteEngine on
# rewrite base angeben, noetig bei manchen providern
RewriteBase /neu
# requests zu front_content.php vom umschreiben ausschliessen
RewriteRule ^front_content.php.*$ - [L]
# request zum root-verzeichnis
#RewriteRule ^$ front_content.php [QSA,L]
# requests nach dem muster /Was-ist-Contenido/rocknroll,a,2.4fb umschreiben
RewriteRule ^(.*)/index-a-([0-9]+)\.html$ front_content.php?idcat=$2 [NC,QSA,L]
</IfModule>
und der Brower sagt:
Code: Alles auswählen
Error 404 - Not found
Die angegebene Seite konnte nicht gefunden werden.
Nochmal zur Ergänzung das komplette Contenido liegt in "domain.de/neu" , der Mandant ("cms") liegt in "domain.de/neu/cms/front_content.php". Die links dürfen natürlich auch gerne ander aussehen.
die .httacces liegt in domain.de/neu/.htaccess ist das richtig oder muss die in den cms? geht beides nicht.
Übrigens die Trennung mit "-" habe ich so eingestellt. Steht die mir jetzt im Weg?
Gruß
Chris
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Di 17. Mär 2009, 15:36
von xmurrix
chpulat hat geschrieben:...
Nochmal zur Ergänzung das komplette Contenido liegt in "domain.de/neu" , der Mandant ("cms") liegt in "domain.de/neu/cms/front_content.php". Die links dürfen natürlich auch gerne ander aussehen.
die .htaccess liegt in domain.de/neu/.htaccess ist das richtig oder muss die in den cms? geht beides nicht...
Das passt soweit, musst nur ein paar Anpassungen machen.
und den Pfad zur .htaccess in der Pluginkonfiguration dann auf "/neu/" umstellen.
Gruß
xmurrix
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Mi 18. Mär 2009, 09:29
von chpulat
xmurrix hat geschrieben:und den Pfad zur .htaccess in der Pluginkonfiguration dann auf "/neu/" umstellen.
Aber ich benutze das Plugin gar nicht ;-D. Xmurrix ich verwirre und nerve doch nicht etwa?

Vielen Dank für deine Hilfe.
Also nochmal die gute alte .htaccess datei funktioniert mit deiner änderung immer noch nicht.
Aber die Weiterleitung von Dir nach contenido.org geht. Manuelle eingabe der Url geht auch (z.B.
http://domain.de/neu/cms/front_content.php?idcat=7) nur von
domain.de/neu/ORDNER1/index-a-7.html //nach--> domain.de/neu/cms/front_content.php?idcat=7 klappt nicht. Kann es an Servereinstellungen liegen?
soll ich mal ne php info posten oder als PN schicken? Kann ich sonstwas überprüfen? soll jetzt auch langsam zum letzten versuch werden. Ggf versuche ich es nochmal mit Plugin.
MFG
Chris
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Mi 18. Mär 2009, 10:41
von xmurrix
chpulat hat geschrieben:...
Aber ich benutze das Plugin gar nicht ;-D. Xmurrix ich verwirre und nerve doch nicht etwa?..
Sorry, habe das was verwechselt.
Eigentlich sollte es folgendermaßen gehen:
Code: Alles auswählen
RewriteBase /neu/cms
RewriteRule ^(.*)/index-a-([0-9]+)\.html$ front_content.php?idcat=$2 [NC,QSA,L]
# oder
RewriteBase /neu
RewriteRule ^(.*)/index-a-([0-9]+)\.html$ cms/front_content.php?idcat=$2 [NC,QSA,L]
Da du aber im Unterordner des Projektes arbeitest, musst du sicherstellen, dass die generierten URLs immer mit /neu/ beginnen.
Das geht vermutlich mit der Anpassung der Klasse Contenido_UrlBuilder_CustomPath (in contenido/classes/UrlBuilder) oder du implementierts eine eigene Chainfunktion für die Chain 'Contenido.Frontend.PostprocessUrlBuilding'.
Dann kannst du der generierten URL den String '/neu' voranstellen, falls es nicht vorhanden ist.
Gruß
xmurrix
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Do 19. Mär 2009, 15:11
von chpulat
Hallo xmurrix.
ich weiß zwar nicht, was sich jetzt geändert hat - dachte hätte die kombinationen alle schon durch - aber jetzt plötzlich geht es! Danke!
Beide folgende Links funktionieren jetzt, wahrscheinlich weil meine .htaccess jetzt im domain.de/neu und domain.de/neu/cms Ordner liegen.
Code: Alles auswählen
www.domain.de/neu/KATEGORIE1/index-a-4.html
<!--oder-->
www.domain.de/neu/cms//KATEGORIE1/index-a-4.html
Vielen, vielen Dank!!!!!
MFG
Christian
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Mo 30. Mär 2009, 11:29
von OliverL
TIPP: config.misc.php
Nach einem Update auf eine neue Version wird die "config.misc.php" überschrieben.
d.h. man muss diese wieder neu bearbeiten.
Umgehen kann man dieses "Problem" in dem man eine "config.local.php" erstellt und die Zeilen dort hinein kopiert.
Die "config.local.php" überschreibt alle vorangegangenen Settings.
Verzeichnis:
1. contenido/includes/config.local.php <- gültig für alle Mandaten
2. cms/config.local.php <- gültig für 1 Mandaten / überschreibt die Settings aus Punkt 1
mfg OliverL
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Do 9. Apr 2009, 07:41
von clipboard
Hallo zusammen,
-Contenido 4.8.11-
Ich habe das genau nach dieser Anleitung gemacht. Also unter contenido/includes/config.misc.php das Ganze einschalten:
Code: Alles auswählen
/*
$cfg['url_builder']['name'] = 'front_content';
$cfg['url_builder']['config'] = array();
/*
// Example setting for UrlBuilder 'custom_path':
$cfg['url_builder']['name'] = 'custom_path';
$cfg['url_builder']['config'] = array('prefix' => 'rocknroll', 'suffix' => '.4fb', 'separator' => ',');
Dann die .htaccess im webroot folgendermassen angelegt:
Code: Alles auswählen
<IfModule mod_rewrite.c>
# rewrite engine aktivieren
RewriteEngine on
# rewrite base angeben, noetig bei manchen providern
RewriteBase /
# requests zu front_content.php vom umschreiben ausschliessen
RewriteRule ^front_content.php.*$ - [L]
# request zum root-verzeichnis
#RewriteRule ^$ front_content.php [QSA,L]
# requests nach dem muster /Was-ist-Contenido/rocknroll,a,2.4fb umschreiben
RewriteRule ^(.*)/rocknroll,a,([0-9]+)\.4fb$ /cms/front_content.php?idcat=$114 [NC,QSA,L]
</IfModule>
Hier habe ich etwas mit verschiedenen vorkommenden idcat-id's versucht:
Code: Alles auswählen
RewriteRule ^(.*)/rocknroll,a,([0-9]+)\.4fb$ /cms/front_content.php?idcat=$114 [NC,QSA,L]
Soblad ich
einschalte, erhalte ich auf der Site folgenden Fehler:
Code: Alles auswählen
[09-Apr-2009 08:06:39] PHP Catchable fatal error: Argument 1 passed to Contenido_UrlBuilderConfig::setConfig() must be an array, null given, called in /home/funktion/public_html/contenido/includes/startup.php on line 111 and defined in /home/funktion/public_html/contenido/classes/UrlBuilder/Contenido_UrlBuilderConfig.class.php on line 80
Diesen Fehler bekomme ich auf dem Server vom Hoster und auch auf meinem Testrechner. Bei beiden ist mod_rewrite aktiv. Für mich gibts 2 Möglichkeiten: Entweder schalte ich die Funktions nicht richtig ein oder in der .htaccess hat es doch noch einen Fehler. Aber wo ich den Fehler mache, sehe ich einfach nicht? Bin dankbar für etwas Nachhilfe
Gruss
Fabian
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Do 9. Apr 2009, 09:02
von xmurrix
Morgen,
clipboard hat geschrieben:...
Code: Alles auswählen
/*
$cfg['url_builder']['name'] = 'front_content';
$cfg['url_builder']['config'] = array();
/*
// Example setting for UrlBuilder 'custom_path':
$cfg['url_builder']['name'] = 'custom_path';
$cfg['url_builder']['config'] = array('prefix' => 'rocknroll', 'suffix' => '.4fb', 'separator' => ',');
Soblad ich
einschalte, erhalte ich auf der Site folgenden Fehler:
Code: Alles auswählen
[09-Apr-2009 08:06:39] PHP Catchable fatal error: Argument 1 passed to Contenido_UrlBuilderConfig::setConfig() must be an array, null given, called in /home/funktion/public_html/contenido/includes/startup.php on line 111 and defined in /home/funktion/public_html/contenido/classes/UrlBuilder/Contenido_UrlBuilderConfig.class.php on line 80...
kann es sein, dass es sich um einen Vertipper beim schließenden Kommentar handelt?
Code: Alles auswählen
/*
$cfg['url_builder']['name'] = 'front_content';
$cfg['url_builder']['config'] = array();
*/
anstatt
Code: Alles auswählen
/*
$cfg['url_builder']['name'] = 'front_content';
$cfg['url_builder']['config'] = array();
/*
Laut der Fehlermeldung gibt es die Variable $cfg['url_builder']['config'] nicht, das kann passieren, weil der Kommentar nicht geschlossen wurde.
Gruß
xmurrix
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Do 9. Apr 2009, 09:53
von clipboard
Hallo xmurrix
vielen Dank, du warst auf der richtigen Spur. Habe mal nicht auskommentiert, sondern die zwei Zeilen gleich entfernt.
Das Ergebnis ist etwas besser, d.h. die Seite ist über "normalen Weg" (also mit front_content.php?idcat=xx) ereichbar. Aber das Umschreiben geht noch immer nicht so ganz. Nun vermute ich den Fehler in der Rule.
D.h:
Code: Alles auswählen
http://www.funktionsmodellbau.ch/cms/front_content.php?idcat=113
sollte so ereichbar sein:
Code: Alles auswählen
http://www.funktionsmodellbau.ch/cms/modelle/funktion,a,113.html
Mit folgender Regel:
Code: Alles auswählen
RewriteRule ^(.*)/funktion,a,([0-9]+)\.html$ /cms/front_content.php?idcat=$113 [NC,QSA,L]
Als Alias in den Eigenschaften habe ich "modelle" stehen.
Falls du nochmals einen Hinweis aus dem Ärmel schütteln könntest, wärst du für 2 Tage mein persönlicher Held
Gruss
Fabian
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Do 9. Apr 2009, 10:58
von xmurrix
clipboard hat geschrieben:...Habe mal nicht auskommentiert, sondern die zwei Zeilen gleich entfernt.
Das Ergebnis ist etwas besser, d.h. die Seite ist über "normalen Weg" (also mit front_content.php?idcat=xx) ereichbar. Aber das Umschreiben geht noch immer nicht so ganz. Nun vermute ich den Fehler in der Rule...
Wenn in der "config.misc.php" die Zeilen
Code: Alles auswählen
$cfg['url_builder']['name'] = 'front_content';
$cfg['url_builder']['config'] = array();
stehen, dann wird der standart UrlBuilder verwendet, der URLs alá front_content.php... generiert.
Willst du aber Clean-URLs haben, brauchst du dort einen anderen UrlBuilder (der UrlBuilder auf dem System vorhanden sein, siehe contenido/classes/UrlBuilder/) zu konfigurieren, z. B. den "custom_path"
Code: Alles auswählen
$cfg['url_builder']['name'] = 'custom_path';
$cfg['url_builder']['config'] = array('prefix' => 'rocknroll', 'suffix' => '.4fb', 'separator' => ',');
Danach sollte es mit der Ausgabe der Clean-URLs klappen.
Die RewriteRule würde ich noch folgendermaßen anpassen:
Code: Alles auswählen
RewriteRule ^(.*)/funktion,a,([0-9]+)\.html$ /cms/front_content.php?idcat=$1 [NC,QSA,L]
Das
$1 enthält den Treffer des ersten regulären Ausdrucks in der RewriteRule, in diesem Fall den Treffer aus ([0-9]+).
Gruß
xmurrix
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Do 9. Apr 2009, 12:41
von clipboard
Hallo xmurrix
xmurrix hat geschrieben:
Willst du aber Clean-URLs haben, brauchst du dort einen anderen UrlBuilder (der UrlBuilder auf dem System vorhanden sein, siehe contenido/classes/UrlBuilder/) zu konfigurieren, z. B. den "custom_path"
Code: Alles auswählen
$cfg['url_builder']['name'] = 'custom_path';
$cfg['url_builder']['config'] = array('prefix' => 'rocknroll', 'suffix' => '.4fb', 'separator' => ',');
Danach sollte es mit der Ausgabe der Clean-URLs klappen.
...hm, habe ich soweit alles. Nur noch um mögliche Fehler auszuschliessen:
In dieser Zeile reicht das so? Ich muss bei = 'custom_path' nicht den Pfad auf das File angeben?
Sonst weiss ich nicht, was ich noch falsch mache. Aber ich mache sonst mal Pause, vielleicht hilft das einwenig

Dir danke ich für deine Hilfe und Zeit!
Gruss
Fabian
Re: Aktivierung der Erstellung von SEO-URLs
Verfasst: Do 9. Apr 2009, 13:28
von xmurrix
clipboard hat geschrieben:...hm, habe ich soweit alles. Nur noch um mögliche Fehler auszuschliessen:
In dieser Zeile reicht das so? Ich muss bei = 'custom_path' nicht den Pfad auf das File angeben?

...
Da barucht man den Pfad nicht angeben, der Name des Builders reicht da aus und um den Rest (das Einbinden des Scriptes und das Instanziieren des Objektes) kümmert sich die Methode
getUrlBuilder() in der Contenido_UrlBuilderFactory.class.php.
Gruß
xmurrix