Page 1 of 1

News detail Fehler 404

Posted: Tue Apr 07, 2009 10:41 am
by antibart
Hallo!

Nach der Anleitung hier im Forum für "mehrere NewsModule installieren" habe ich eine Kopie des Newsystems unter dem Namen "Magazin" erstellt.

Also case-sensitive alle Zeichenketten mit "news / News" (und auch in den Dateinamen) ersetzt.

Das funktioniert prima - bis auf eine Ausnahme.

Klicke ich bei einem Artikel auf "mehr" bekomme Fehler 404 (not found on this server) ...

Der Link sieht aber OK aus http://www. ....... /magazin/3/62/Test.html

Eigentlich genauso wie bei news ...

Mein erste Vermutung: .htaccess

Code: Select all

# RewriteCond %{REQUEST_URI} !/$
# RewriteCond %{REQUEST_URI} !\.
RewriteRule ^News/rss(.+)$ index.php?page=News/rss$1 [S=1]
# RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)(.html)?$ index.php?page=$1 [QSA]
... die hat nur eine Rule für "News/rss" ...

Eine zusätzlliche Regel hat aber nichths genützt - zudem der Link ja eigentlich richtig umgesetzt wird - nur halt nicht gefunden ...

Kann mir jemand einen Ruck geben? Auch versthe ich nicht die komplette syntax der .htacces .. vieleicht hab ich nicht alles richtig angepasst.

Re: News detail Fehler 404

Posted: Tue Apr 07, 2009 6:11 pm
by NaN
Ich hätte schwören können, dass ich hier heute schonmal drauf geantwortet habe.
Aber genau wie letztens... verschwunden.
Und außerdem habe ich Deinen Thread schon dreimal löschen dürfen, weil er mehrfach auftauchte.

Also nochmal...
antibart wrote: Eine zusätzlliche Regel hat aber nichths genützt - zudem der Link ja eigentlich richtig umgesetzt wird - nur halt nicht gefunden ...
Kann mir jemand einen Ruck geben? Auch versthe ich nicht die komplette syntax der .htacces .. vieleicht hab ich nicht alles richtig angepasst.
Wenn Du pretty URLs verwenden willst, dann brauchst Du aber eine zusätzliche Regel für das News-Modul (und für alle anderen Module, die eigene pretty URLs erstellen).
Eine Regel, die dem Server z.B. sagt, dass er URLs von htp://www. ... /news/3/62/article.html in
htp://www. ... index.php?mact=News,cntnt01,detail,0&cntnt01articleid=62... umschreiben soll.

Siehe hierzu: http://wiki.cmsmadesimple.org/index.php ... stallation (das beispiel ganz unten "For News module"; den Syntax dazu muss man nicht unbedingt verstehen)

Und das gleiche brauchst Du dann auch für Dein "Magazin".

Re: News detail Fehler 404

Posted: Wed Apr 08, 2009 7:42 am
by antibart
NaN wrote:
Ich hätte schwören können, dass ich hier heute schonmal drauf geantwortet habe.
Aber genau wie letztens... verschwunden.
Und außerdem habe ich Deinen Thread schon dreimal löschen dürfen, weil er mehrfach auftauchte.

Sorry dafür. Das war auch für mich ein bißchen verwirrend. Der Thread schien ständig sofort von selbst zu verschwinden - scheinbar in einen extra Spambereich, denn in der URL kam direkt nach dem Absenden das Wörtchen "spam" vor. Mit  Browser-Back kam ich zwar zurück in den Editor, aber der Text war verschwunden...

Ich vermutete, dass es wohl an dem Link in meinem Post lag. Daher hab ich ihn mehrfach neu erstellt. Nach mehreren Änderungen blieb der Thread dann endlich stehen.

Seltsamerweise ist einer der Threads unter "Module und Tags" nun doch wieder / noch da. Das ist der, auf den schon geantwortet hast.
NaN wrote: Und das gleiche brauchst Du dann auch für Dein "Magazin".
Dankeschön..

Obwohl es einleuchtet , hat es nicht geklappt.

Auch wundert mich, dass ich schon immer exakt mit oben geposteter .htaccess arbeite, welche die News-URL immer korrekt umwandelte...

Re: News detail Fehler 404

Posted: Tue Apr 14, 2009 10:01 am
by antibart
Das haut leider nicht hin ...

Zum einen ist es so, dass das "normale" News-Modul, also nicht das geklonte ,auch ohne diese Regel prima funktioniert. Nur der Klon spinnt. Der funktioniert leider nur bei deaktivitiertem "use_hierarchy" in der config.php. Aber damit feheln natürlich auch die pretty url bei News / Magazin...

Ich hab dann testweise mal die in der Doku genannten Regeln der .htaccess zugefügt ... Das hatte keine Wirkung. Auch habe ich sie  - wie es dort steht (obwohl es mir völlig unschlüssig erschien) in einen Unterordner verschoben .. Ebenfalls ohne Wirkung ...

Tja .. ich lass es erstmal ohne use-hierarchy laufen, damit es überhaupt geht .., trotzdem denke ich, dass der Irrtum zu klein ist, um es schon aufzugeben.

Re: News detail Fehler 404

Posted: Sat Apr 18, 2009 3:22 pm
by NaN
Ich muss jetzt noch mal nachhaken.
Funktioniert der Detail-Link generell nicht, oder nur beim "Magazin"?
Ist das wirklich die komplette .htaccess Datei?

Re: News detail Fehler 404

Posted: Sun Apr 19, 2009 7:57 am
by antibart
NaN wrote:
Ich muss jetzt noch mal nachhaken.
Funktioniert der Detail-Link generell nicht, oder nur beim "Magazin"?
Vielen Dank - hatte mich schon damit abgefunden, dass das wohl erstmal so bleiben muss.

Nur beim Magazin - was ja ein Klon von News ist - haut es nicht hin. Bei News funktioniert es mit pretty URL tadellos.

NaN wrote: Ist das wirklich die komplette .htaccess Datei?
Jupp ... ich benutze die bei allen (ca 20) CSMS-Projekten und sie wandelt alles in feinste hübsche URLs um ... ichhab die mal irgendwann hier aus eiem Forumsbeitrag übernommen. Die Regel aus der Dokumentation dagagen funktioniert nicht so...

Re: News detail Fehler 404

Posted: Sun Apr 19, 2009 3:17 pm
by NaN
antibart wrote:
NaN wrote: Ist das wirklich die komplette .htaccess Datei?
Jupp ... ich benutze die bei allen (ca 20) CSMS-Projekten und sie wandelt alles in feinste hübsche URLs um ...
Ich vermute hier ein kleines Verständnis-Problem.
Die .htaccess-Datei macht keine hübschen URLs.
Genaugenommen macht sie genau das Gegenteil.
Sie wandelt die hübschen URLs in häßliche URLs um, da nur diese vom System interpretiert werden können.
Die hübschen URLs werden nach eigenen Regeln vom CMS selbst erstellt, wenn man in der config.php

Code: Select all

$config['assume_mod_rewrite'] = true;
verwendet.

Somit stehen im Browser wunderhübsche URLs, die auf dem Server mit Hilfe der .htacces-Datei wieder umgemodelt werden.
Das bekommt man als Besucher allerdings nicht mit.
In der Adressleiste des Browsers bleibt die angeforderte (hübsche) URL stehen.

D.h. die .htaccess-Datei muss auf das CMS abgestimmt werden.
antibart wrote:
NaN wrote: [...]
Funktioniert der Detail-Link generell nicht, oder nur beim "Magazin"?
[...]

Nur beim Magazin - was ja ein Klon von News ist - haut es nicht hin. Bei News funktioniert es mit pretty URL tadellos.
Und das, obwohl Du keinerlei RewriteRules für das News-Modul in der .htaccess-Datei stehen hast?
Finde ich seltsam.

Kann es sein, dass Du beim "klonen" des News-Moduls irgendetwas übersehen hast?
Ich habe es gerade auch mal probiert.
Bei mir funktionert es ohne Probleme (CMSms 1.5.4).

Schau mal in die Datei Magazin.module.php.
Schau Dir mal in Zeile 63 die Funktion SetParameters() an.

Wenn dort noch etwas in der Art steht:
$this->RegisterRoute('/[nN]ews\/(?P[0-9]+)\/(?P[0-9]+)\/(?P.*?)
dann hast Du etwas übersehen.
Dort sollte soetwas stehen:
$this->RegisterRoute('/[mM]agazin\/(?P[0-9]+)\/(?P[0-9]+)\/(?P.*?)\/d,(?P.*?)$/');
$this->RegisterRoute('/[mM]agazin\/(?P[0-9]+)\/(?P[0-9]+)\/(?P.*?)$/');
$this->RegisterRoute('/[mM]agazin\/(?P[0-9]+)\/(?P[0-9]+)$/');
$this->RegisterRoute('/[mM]agazin\/(?P[0-9]+)$/');
Damit wird der Aufbau der pretty URLs bzw. wie der query-string der pretty URLs interpretiert werden soll festgelegt.

Ich vermute hier liegt der Grund dafür, warum es auch ohne entsprechende RewriteRule funktioniert:
Deine .htacces-Datei leitet einfach alles an die index.php weiter und hängt alles was da noch hinter der Domain steht als Query hinten dran.
RewriteRule ^(.+)(.html)?$ index.php?page=$1 [QSA]
Alle Anfragen wie z.B.

htp://deineDomain/irgendwas/irgendwas_anderes

werden zu

htp://deineDomain/index.php?page=irgendwas/irgendwas_anderes

Den Rest erledigt das CMS.
(der Query ist dann im Grunde genauso aufgebaut wie die internal pretty urls; ist übrigens ne clevere Idee anstelle für jedes Modul eigene RewriteRules anzulegen)
Dazu muss es aber wissen wie das "irgendwas" aufzudröseln ist.
Und das weiß es nur durch diese SetParameters() Funktion und den Zeilen $this->RegisterRoute.