Plugin Advanced Mod Rewrite für Contenido 4.8.x

andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

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

Beitrag von andrej »

Hallo,
erstmal vielen dank für das super plugin. ich habe bereits mehrere jahre mit der lösung von stease gearbeitet, die wunderbar bis heute funktioniert.

bei einem projekt steht mir jeodch ein kompletes redesign vor der tür, natürlich nehme ich aktuellste contenido version (4.8.11) als basis, und würde gerne deine mod_rewrite (0.5.3) lösung nutzen.

ich habe unter xampp eine frische contenido installation durchgeführt, mit bsp. mandanten und artikeln. im anschluß dein plugin installiert, die installtion verlief problemlos.

die pfade sehen wir folgt aus:

localhost/projekt - hier befindet sich die contenido installtion
locahost/projekt/cms
localhost/projekt/contenido
localhost/.htaccess - die datei selbst

die .htaccess wurde dahin gehend so angepasst.

Code: Alles auswählen

RewriteBase /projekt/cms

Code: Alles auswählen

RewriteRule ^projekt/contenido/.*$ - [L]
RewriteRule ^projekt/setup/.*$ - [L]
RewriteRule ^projekt/cms/upload/.*$ - [L]
RewriteRule ^projekt/cms/test/.*$ - [L]
RewriteRule ^projekt/cms/front_content.php.*$ - [L]
# enable following line if you want to run the plugin test
RewriteRule ^projekt/cms/mr_test.php.*$ - [L]
unter Content->AMR->Pfad zur .htacces - wurde folgendes eingetragen

Code: Alles auswählen

/projekt/cms/
wenn ich nun http://localhost aufrufe, erscheint die seite von contenido mit dem testmandanten, in der adressleiste des browsers steht dann einfach http://localhost

gehe ich nun mit dem mauscurser auf eines der menüpunkte in der navigation, bekomme ich soetwas zu sehen

Code: Alles auswählen

http://localhost/projekt/cms/index.html?a=4&level=1
im anschluß klicke ich auf den menüpunkt. die internetseite, die ich angeklickt habe wird jedoch nicht geladen. ich sehe immer noch die startseite. obwohl mein firefox mir mitteilt das eine neue seite geladen wurde. im adressfeld von firefox wird auch genau der link aufgelistet wie oben erwähnt.

das wäre das erste, bei dem ich ein problem habe. zum zweiten problem.

ich möchte das meine artikel wie folgt erscheinen.
im backendbereich / hauptkategorie / kategorie / artikel

mi browser sollte es so ausschauen:

Code: Alles auswählen

http://localhost/kategorie/artikelname
sprich am ende keine ziffern, oder eine dateiendung wie .html, und die hauptkategorie name sollte in diesem fall auch nicht angezeigt werden.

sry das es etwas mehr geworden ist, ich hoffe du kannst mir bei dem kleinen disaster helfen. vielen dank im voraus.
matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

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

Beitrag von matt.loker »

xmurrix hat geschrieben:Hallo Matt,
matt.loker hat geschrieben:...ich habe contenido 4.8.8 mit AMR 0.5.0 am laufen und habe ein Problem mit dem Sprachwechsel...
Mit AMR wird der link
./front_content.php?idcat=35&changelang=1
nicht in http://www.domain.de/deutsch/index.html
sondern in http://www.domain.de/englisch/deutsch/index.html interpretiert und bei Klick gelangt auf die Startseite der aktuellen Sprache...
öffne die Datei contenido/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php und ändere die Zeile 183

Code: Alles auswählen

        if ($param = $this->_getClientParameter($aParts, $aArgs)) {
in

Code: Alles auswählen

        if ($param = $this->_getClientParameter($aArgs)) {
Dann die Zeile 188

Code: Alles auswählen

        if ($param = $this->_getLanguageParameter($aParts, $aArgs)) {
in

Code: Alles auswählen

        if ($param = $this->_getLanguageParameter($aArgs)) {
Den Lösungansatz habe ich jetzt nicht getestet, so sollte es aber funktionieren.

Gruß
xmurrix
hat super funktioniert - danke :)
rudi2009
Beiträge: 2
Registriert: Di 17. Mär 2009, 11:27
Kontaktdaten:

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

Beitrag von rudi2009 »

Meinen Dank an xmurrix für das tolle Plugin!

Hallo,

ich habe den Alias einer Kategorie geändert. Nun wird dieser Alias nur bei einer Unterkategorie angezeigt, bei allen anderen wird weiterhin der alte Alias angezeigt. Den Alias der Unterkategorie hatte ich ebenfalls bearbeitet - deshalb vermutlich. Wie kann ich die Einstellung auf alle Unterkategorie übertragen ohne alle einzeln zubearbeiten? Oder liegt der Fehler woanders?

domain.tld/ordner_neu/
domain.tld/ordner_alt/unterkategorie1
domain.tld/ordner_alt/unterkategorie2
domain.tld/ordner_neu/unterkategorie3
domain.tld/ordner_alt/unterkategorie4

Danke und Gruß
rudi
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

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

Beitrag von xmurrix »

Hallo andrej,
andrej hat geschrieben:...
unter Content->AMR->Pfad zur .htacces - wurde folgendes eingetragen

Code: Alles auswählen

/projekt/cms/
...
da die .htaccess bei dir im DocumentRoot liegt, ist dort auch als Pfad nur / anzugeben.
andrej hat geschrieben:...mi browser sollte es so ausschauen:

Code: Alles auswählen

http://localhost/kategorie/artikelname
sprich am ende keine ziffern, oder eine dateiendung wie .html, und die hauptkategorie name sollte in diesem fall auch nicht angezeigt werden....
Das mit dem Artikelnamen lässt sich auch konfigurieren, einfach in der Pluginkonfiguration die Dateiendung ".html" entfernen.
Zum voranstellen (oder nicht) der Hauptkategorie gibt es eine Checkbox in der Konfiguration, das kannst du abwählen.

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: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

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

Beitrag von xmurrix »

Hallo rudi2009,
rudi2009 hat geschrieben:...ich habe den Alias einer Kategorie geändert. Nun wird dieser Alias nur bei einer Unterkategorie angezeigt, bei allen anderen wird weiterhin der alte Alias angezeigt. Den Alias der Unterkategorie hatte ich ebenfalls bearbeitet - deshalb vermutlich. Wie kann ich die Einstellung auf alle Unterkategorie übertragen ohne alle einzeln zubearbeiten? Oder liegt der Fehler woanders?

domain.tld/ordner_neu/
domain.tld/ordner_alt/unterkategorie1
domain.tld/ordner_alt/unterkategorie2
domain.tld/ordner_neu/unterkategorie3
domain.tld/ordner_alt/unterkategorie4
...
vermutlich ist das noch ein Bug, d. h. es werden die Aliase eventuell vorhandener Unterkategorien nicht aktualisiert - Ich werde mir das ansehen.

Du kannst aber auch auf der Pluginseite die Aliase mit Klick auf "Aliase zurücksetzen" neu generieren lassen.

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.
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

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

Beitrag von andrej »

xmurrix hat geschrieben:Hallo andrej,
andrej hat geschrieben:...
unter Content->AMR->Pfad zur .htacces - wurde folgendes eingetragen

Code: Alles auswählen

/projekt/cms/
...
da die .htaccess bei dir im DocumentRoot liegt, ist dort auch als Pfad nur / anzugeben.
andrej hat geschrieben:...mi browser sollte es so ausschauen:

Code: Alles auswählen

http://localhost/kategorie/artikelname
sprich am ende keine ziffern, oder eine dateiendung wie .html, und die hauptkategorie name sollte in diesem fall auch nicht angezeigt werden....
Das mit dem Artikelnamen lässt sich auch konfigurieren, einfach in der Pluginkonfiguration die Dateiendung ".html" entfernen.
Zum voranstellen (oder nicht) der Hauptkategorie gibt es eine Checkbox in der Konfiguration, das kannst du abwählen.

Gruß
xmurrix
danke für die antwort, habe es so weit geändert. die links sehen nun so aus:

Code: Alles auswählen

http://localhost/?a=4&level=1
wenn ich diese anklicke werden die unterseiten nicht aufgerufen.

meine configuration unter AMR im backend sieht so aus:

Code: Alles auswählen

Pfad /
Pfad zur .htaccess Datei überprüfen - aktiviert
Start vom Hauptbaum aus - aktiviert
Artikelname immer an die URLs anhängen - aktiviert feld frei
Dateiendung am Ende der URL - feld frei (wird nicht abgespeichert, nachdem config save wird wieder .html wieder automatisch rein geschrieben)
URLs in Kleinbuchstaben - aktiviert
Prozentsatz für "ähnlich klingende" URLs - 75
Bei ungültigen Artikeln zur Fehlerseite weiterleiten - aktiviert
Bei der Ausgabe des HTML Codes der Seite - ausgewählt
septicus
Beiträge: 12
Registriert: Di 30. Dez 2008, 13:43
Kontaktdaten:

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

Beitrag von septicus »

Hallo zusammen,

auch ich interessiere mich für suchmaschinenfreundliche links auf meiner HP. Bei der Suche bin ich auf dieses Modul gestoßen. Nach einstudieren der Beiträge bzw. der Anleitung habe ich das Modul installiert. Ich habe mich strengstens nach der Installationsanleitung gehalten, allerdings bekomm ich, wenn ich das Modul aktiviere auf meiner Homepage folgenden Error:
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'The classfile of Contenido_UrlBuilder couldn't included by Contenido_UrlBuilderFactory: MR!' in /www/htdocs/w007d4df/cms/contenido/classes/UrlBuilder/Contenido_UrlBuilderFactory.class.php:66 Stack trace: #0 /www/htdocs/w007d4df/cms/contenido/classes/Url/Contenido_Url.class.php(69): Contenido_UrlBuilderFactory::getUrlBuilder('MR') #1 /www/htdocs/w007d4df/cms/contenido/classes/Url/Contenido_Url.class.php(80): Contenido_Url->__construct() #2 /www/htdocs/w007d4df/cms/cms/front_content.php(289): Contenido_Url::getInstance() #3 {main} thrown in /www/htdocs/w007d4df/cms/contenido/classes/UrlBuilder/Contenido_UrlBuilderFactory.class.php on line 66

Was mach ich falsch, was funktioniert hier nicht? Da ich laie bin, kann ich mit der Fehlermeldung wenig anfangen. Kann mir jemand unter die Arme greifen?


lg

sep
matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

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

Beitrag von matt.loker »

ohne jetzt die Fehlermeldung zu verstehen - hast du die richtige AMR-Version zur richtigen Contenido-Version benutzt?

Grüße
Matt
digitalgestalter
Beiträge: 50
Registriert: Di 15. Nov 2005, 13:54
Wohnort: Gummersbach
Kontaktdaten:

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

Beitrag von digitalgestalter »

Hallo zusammen,

erstmal vielen Dank für das tolle Plugin. An sich funktioniert alles bestens, aber ich habe ein kleines Problem mit dem Standard-Suchmodul in Verbindung mit dem ModRewrite-Plugin. Vorab, ich benutze die 4.8.11 mit dem Plugin 0.5.3. Also alles aktuell. Bei der Suchausgabe bekomme ich folgende Fehlermeldung:

Warning: urldecode() expects parameter 1 to be string, array given in /homepages/23/datenbank/htdocs/contenido/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php on line 252

Ich habe gesehen das es dieses Problem mit dem Newsmodul auch schon gab. Leider hilft mir die Lösung aus diesem Thread nicht weiter. Kann mir vielleicht hier jemand helfen? Trotz Suche hier im Forum habe ich keine Lösung gefunden.

Viele Dank schonmal ...
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

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

Beitrag von xmurrix »

andrej hat geschrieben:...

Code: Alles auswählen

http://localhost/?a=4&level=1
wenn ich diese anklicke werden die unterseiten nicht aufgerufen.
Da passt irgendetwas noch nicht. Wenn alle URLs (oder die Meisten) so ausgegeben werden, kann es mehrere Ursachen haben - Die geläufigsten sind:
1.) Die Aliase in der DB sind nicht gesetzt
2.) Die Module (Hauptnavigation, Sitemap, usw.) des Beispielmandanten sind noch nicht angepasst, näheres dazu gibt es unter http://forum.contenido.org/viewtopic.ph ... 30#p128633
andrej hat geschrieben:...
Dateiendung am Ende der URL - feld frei (wird nicht abgespeichert, nachdem config save wird wieder .html wieder automatisch rein geschrieben)
...
Die Dateiendung muss momentan immer angegeben werden, sollte aber nicht ein Mussfeld sein - Das kann ich dann im nächsten Release 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.
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

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

Beitrag von xmurrix »

Hallo digitalgestalter,
digitalgestalter hat geschrieben:...Bei der Suchausgabe bekomme ich folgende Fehlermeldung:

Warning: urldecode() expects parameter 1 to be string, array given in /homepages/23/datenbank/htdocs/contenido/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php on line 252
...
die Modulcodes des Beispielmandanten funktionieren nicht auf Anhieb mit dem AMR-Plugin - Da sind ein paar Anpassungen nötig. Habe soeben einen Thread mit einer kleinen Anleitung dafür erstellt.

AMR und Anpassungen an Contenido Modulen des Beispielmandanten:
http://forum.contenido.org/viewtopic.php?f=66&t=23501

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.
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

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

Beitrag von andrej »

hallo xmurrix,
vielen dank für die antwort und den link. leider hat es mein problem nicht gelöst.

ich habe gerade eben eine komplett frische version von contenido/deinem plugin installiert.


installationspfad: http://localhost/projekt/

folgendes habe ich angepasst, laut den beschreibungen hier im forum.
.htaccess - RewriteBase /projekt/cms
AMR Backend:
Pfad zur .htaccess Datei aus Sicht des Web-Browsers: /projekt/
sonst habe ich alles im backend so belassen, wie es die vorkonfiguration vorgibt.
Aliase zurücksetzen - habe ich einmal ausgeführt, weil du ja sagtest das es ein problem seien kann.

mr_test.php - ausgeführt und folgendes erhalten

Code: Alles auswählen

Execution of test took: 0.0152 seconds.
Number of processed URLs: 5
Successfull resolved: 5
Resolving failed: 0

Hauptnavigation
builder in:    front_content.php?idcat=1&foo=bar
builder out:   /projekt/index.html?foo=bar
resolved url:  /projekt/index.html?foo=bar
resolved data: client=1; lang=1

Hauptnavigation :: Startseite
builder in:    front_content.php?idart=1&idcat=1&idcatart=1&idartlang=1&foo=bar
builder out:   /projekt/?foo=bar
resolved url:  /projekt/?foo=bar
resolved data: client=1; lang=1

    Was ist Contenido
    builder in:    front_content.php?idcat=2&foo=bar
    builder out:   /projekt/index.html?foo=bar
    resolved url:  /projekt/index.html?foo=bar
    resolved data: client=1; lang=1

    Was ist Contenido :: Contenido Highlights
    builder in:    front_content.php?idart=2&idcat=2&idcatart=2&idartlang=2&foo=bar
    builder out:   /projekt/?foo=bar
    resolved url:  /projekt/?foo=bar
    resolved data: client=1; lang=1

    Was ist Contenido :: Liste
    builder in:    front_content.php?idart=3&idcat=2&idcatart=3&idartlang=3&foo=bar
    builder out:   /projekt/?foo=bar
    resolved url:  /projekt/?foo=bar
    resolved data: client=1; lang=1
Contenido_Sitemap_Util.class.php, Contenido_NavMain_Util.class.php - wurden angepasst wie von dir beschrieben, sprich

Code: Alles auswählen

if ($cfg['url_builder']['name'] == 'front_content') {
durch

Code: Alles auswählen

if ($cfg['url_builder']['name'] == 'front_content' || $aCfg['url_builder']['name'] == 'MR') {
erweitert.

resultat: wenn ich die startseite aufrufe, von contenido mit den beispielmandanten, habe ich bei JEDEM link folgende angabe

Code: Alles auswählen

http://localhost/projekt/index.html
eine fehler meldung beim anklicken wird nicht herausgegeben, allerdings wird man auch nicht zu der seite weiter geleitet, die man angeklickt hat. kurz gesagt, es funktioniert leider immer noch nicht.
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

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

Beitrag von andrej »

bei weiterem suchen, bin ich auf diesen beitrag gestoßen: http://forum.contenido.org/viewtopic.ph ... 08#p127759

nun funktioniert alles einwandfrei. scheint wohl ein fehler in der aktuellen MR funktion zu sein, bzw. wurde wohl vergessen zu ergänzen?
rudi2009
Beiträge: 2
Registriert: Di 17. Mär 2009, 11:27
Kontaktdaten:

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

Beitrag von rudi2009 »

xmurrix hat geschrieben:
rudi2009 hat geschrieben:...ich habe den Alias einer Kategorie geändert. Nun wird dieser Alias nur bei einer Unterkategorie angezeigt, bei allen anderen wird weiterhin der alte Alias angezeigt. ...
...
vermutlich ist das noch ein Bug, d. h. es werden die Aliase eventuell vorhandener Unterkategorien nicht aktualisiert - Ich werde mir das ansehen. Du kannst aber auch auf der Pluginseite die Aliase mit Klick auf "Aliase zurücksetzen" neu generieren lassen.
Gruß
xmurrix
Wenn ich die Aliase zurücksetze generiert das Skript die doch aus den Kategorienamen neu. Ich möchte gern einen vom Kategorienamen abweichenden Alias nutzen.
birke
Beiträge: 92
Registriert: Mo 2. Feb 2009, 16:58
Kontaktdaten:

JavaScript & Mod Rewrite

Beitrag von birke »

Ich habe ein Problem mit JavaScript und dem Mod Rewrite, wie ich glaube.

Für JavaScript verwende ich das MooTools Framework mit dem ich bisher nie Probleme hatte. Nun ist es jedoch so, dass bei einem Klick auf einen URL wie:

Code: Alles auswählen

<a href="#" id="Meine_ID">KLick</a>
nicht meine Funktion ausgeführt wird, sondern die Fehlerseite angezeigt wird, dass diese Seite nicht existieren würde. Klar existiert die nicht. :)

Ich habe auch schon:

Code: Alles auswählen

<a href="void(0)" id="Meine_ID" rel="nofollow">KLick</a>
versucht, doch auch dann wird die Fehlerseite aufgerufen.

Kann ich evtl. über die .htaccess festlegen, dass bei # oder void(0) eben kein URL aufgerufen wird? Oder suche ich gar an der falschen Stelle und es hat mit dem AMR nichts zu tun?


Dann hätte ich gleich noch eine zweite Frage bezüglich des URL, den das AMR generiert. Wenn ich mir den Quellcode der Seite anzeigen lasse, werden dort URL so angegeben:

Code: Alles auswählen

http://localhost:8888
. Dies funktioniert zwar, doch wenn ich von meinem Notebook aus über das Netzwerk auf die Seite zugreifen möchte, findet er diese Verweise natürlich nicht. Was kann ich denn tun um den URL als z.Bsp. http://192.168.2.3:8888/... ausgeben zu lassen? Oder wie kann ich dieses Problem sonst in den Griff bekommen?

Grüße, Birke
Gesperrt