Aktivierung der Erstellung von SEO-URLs

chpulat
Beiträge: 27
Registriert: Di 3. Mär 2009, 15:32
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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>
chpulat
Beiträge: 27
Registriert: Di 3. Mär 2009, 15:32
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag von chpulat »

kann mir denn niemand helfen? Oder zumindest anhaltspunkte nennen unter denen ich selber suchen kann? Oder Erfahrungswerte mit 1und1? :-(
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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
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.
chpulat
Beiträge: 27
Registriert: Di 3. Mär 2009, 15:32
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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.

Code: Alles auswählen

RewriteBase /neu/cms
und den Pfad zur .htaccess in der Pluginkonfiguration dann auf "/neu/" umstellen.

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.
chpulat
Beiträge: 27
Registriert: Di 3. Mär 2009, 15:32
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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? :-D 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
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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
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.
chpulat
Beiträge: 27
Registriert: Di 3. Mär 2009, 15:32
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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
clipboard
Beiträge: 41
Registriert: Sa 29. Mai 2004, 11:14
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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

Code: Alles auswählen

contenido/includes/config.misc.php
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 :D

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

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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

Code: Alles auswählen

contenido/includes/config.misc.php
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
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.
clipboard
Beiträge: 41
Registriert: Sa 29. Mai 2004, 11:14
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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 :D

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

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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
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.
clipboard
Beiträge: 41
Registriert: Sa 29. Mai 2004, 11:14
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag 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:

Code: Alles auswählen

$cfg['url_builder']['name']   = 'custom_path';
In dieser Zeile reicht das so? Ich muss bei = 'custom_path' nicht den Pfad auf das File angeben? :mrgreen:

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
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Aktivierung der Erstellung von SEO-URLs

Beitrag von xmurrix »

clipboard hat geschrieben:...hm, habe ich soweit alles. Nur noch um mögliche Fehler auszuschliessen:

Code: Alles auswählen

$cfg['url_builder']['name']   = 'custom_path';
In dieser Zeile reicht das so? Ich muss bei = 'custom_path' nicht den Pfad auf das File angeben? :mrgreen: ...
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
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