spip hilfestellung

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 25.07.2003 11:40 schrieb mSchoko@gmx.de:

hallo heiko!

ich habe deine frage in spip-de listenarchiv gefunden und mir gleich danach
deine seite angeschaut,

www.heiko-jansen.de jetzt hätte ich ein paar fragen, könntest du mir evt. paar beantworten.

Da es auch mit meinem französisch nicht sehr gut ausschaut, eigentlich
überhaupt nicht gut.
möchte ich gern die ganzen links die spip erstellt
(/rubrique.php3?id_rubrique=1 z.beispiel) irgendwie eindeutschen. auf der heiko-jansen.de hast du das
doch auch so gemacht, kann das richtig sein?

Ich möchte einfach darauf hinaus das es entweder alles englisch oder deutsch
ist, stelle mir dann das so vor. (/rubrik.php3?id_rubrik=1) bzw.
(/robric.php3?id_rubrik=1)

Ich habe schon einmal versucht alle .php und die dazugehörigen .html
umzubenennen. leider hat das nicht funktioniert.
dachte da an diese struktur:
article.html - Artikel
auteur.html - Info über Autorl
breve.html - Meldung
forum.html - Forum
login.html - Login zum Redaktionssystem
login_public.html - Login für Besucher
mot.html - Schlagworte
nouveautes.html - Neuigkeiten
plan.html - Sitemap
recherche.html - Suchergebnisse
resume.html - Kurzübersicht der Website
rubrique.html - Rubrik
site.html - verlinkte bzw. syndizierte Website
sommaire.html - Startseite

Hast du da evt. Tipps auf lager?

Würde mich freuen wenn ich eine antwort bekommen würde.

Mit freundlichen Grüßen und bestem dank

schoko alias Matthias N.

Hallo,

ich poste deine Nachricht und meine Antwort auch auf die SPIP-Mailingliste, weil da vielleicht mehr Menschen dran Interesse haben.

so einfach, wie du es gemacht hast ist es nicht. Die Dateinamen werden nicht verändert. Du mußt zwei Sachen machen:
a) Innerhalb von SPIP einstellen, wie die internen Links aussehen sollen
b) dem Server (Apache) mit .htaccess mitteilen, daß er bestimmte Anfragen auf andere Seiten umleiten soll.

zu a)
Bei SPIP gibt es im root-Verzeichnis es Dateien namens inc-url-xxx.php3 In diesen Dateien ist festgelegt, wie SPIP-intern die Links aussehen sollen. In inc-urls-dist.php3 wird festgelegt, welches Schema genutzt werden soll, standardmäßig wird auf inc-urls-standard.php3 zugegriffen.
Dort finden sich Zeilen wie diese:

function generer_url_article($id_article) {
         return "article.php3?id_article=$id_article";
}

In der zweiten Zeile wird nun angegeben, wie die Links intern aussehen sollen. Änderst du jetzt article.php3?id_article=$id_article in artikel$id_article.html würdest du als internen Link für Artikel 12 den Link artikel12.html erhalten.

Es gibt schon eine Datei inc-urls-html.php3, wo soetwas mit französischen Text gemacht worden ist. Diese kannst du z.B. eindeutschen und als inc-urls-deutsch.php3 abspeichern. Dann mußt du noch in der Datei inc-urls-dist die vorletzte Zeile ändern:
aus

$type_urls = "standard";

wird

$type_urls = "deutsch";

Jetzt stimmen die Links SPIP-intern, doch beim Aufrufen einer Seite namens artikel12.html würde der Webserver ein 404-Fehler produzieren, jetzt müssen wir also dem Server beibringen, die neuen Formate auf bestehende Seiten umzuleiten. Weil ein Klick auf artikel12.html soll ja in Wirklichkeit auf article.php3?id_article=12 umleiten. Deshalb nun Schritt b)

Dies passiert beim Apache mit dem ModRewrite-Befehl. Dazu mußt du eine Datei namens .htaccess anlegen (wenn sie nicht schon existiert) und dort folgende Zeilen einfügen:

RewriteEngine on
# urls spip
RewriteRule ^rubrik([0-9]+)\.html$ /rubrique.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^artikel([0-9]+)\.html$ /article.php3?id_article=$1 [QSA,L]
RewriteRule ^aktuell([0-9]+)\.html$ /breve.php3?id_breve=$1 [QSA,L]
RewriteRule ^secteur([0-9]+)\.html$ /secteur.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^rubrik_text([0-9]+)\.html$ /rubrik_text.php?id_rubrique=$1 [QSA,L]
RewriteRule ^artikel_text([0-9]+)\.html$ /artikel_text.php?id_article=$1 [QSA,L]
RewriteRule ^aktuell_text([0-9]+)\.html$ /aktuell_text.php?id_breve=$1 [QSA,L]
RewriteRule ^index_text.html$ /start_text.php [QSA,L]
RewriteRule ^termine.html$ /termine.php [QSA,L]
RewriteRule ^termine_text.html$ /site_termine_text.php [QSA,L]
RewriteRule ^index.html$ /index.php [QSA,L]

Hier werden sog. Reluläre Ausdrücke genutzt, die von der Syntax her erstmal
recht kryptisch klingen, aber sehr mächtig sind.
In unserem Falle bedeutet es, daß eine Anfrage an den Server namens artikel12.html ersetzt wird in article.php3?id_article=12.
Beachte: Wenn du SPIP in einem Unterverzeichnis deines Servers installierst, dann müssen die Umelitungsregeln vom obersten Verzeichnis des Servers aus gemacht werden. Ich denke zur RewriteEngine und den Tricks damit wirst du mit Google auch einige gute deutsche Seiten finden.

Ja, jetzt sollte alles klappen. Tut es wahrscheinlich nicht auf Anhieb, hat bei mir auch nicht alles sofort geklappt, bei der .htaccess-Datei muß alles stimmen, sonst funktioniert es nicht, diese muß z.B. bei einigen Serven im ASCII- und nicht im Binary-Format übertragen werden etc. pp.

Zum Schluß noch eine Erweiterung, die ich selbst noch nicht ausprobiert habe: Mit diesem System kannst du natürlich noch viel bessere Sachen machen. So bewertet Google auch den Namen der HTML-Seite und ein Namen wie "artikel123.html" ist nicht so toll, aber ein Name wie "titel_des_artikels_123.html" macht schon mehr her.

Wie das funktioniert findest du auf dieser Seite in den kommentaren (französisch, aber es gibt ja Babelfish...):
http://www.uzine.net/spip_contrib/article.php3?id_article=167

Die original französische Anleitung zum ummodellieren der URLs und des APache findest du hier:
http://www.uzine.net/article765.html

Viele Grüße
Heiko

- -- Heiko Jansen, Bochum, Germany
e.mail[1]: heiko.jansen@rub.de
e.mail[2]: heiko@schaustall.de
web: http://www.heiko-jansen.de
ENCRYPT YOUR E-MAILS! VERSCHLÜSSELT EURE MAILS!
PGP-Key auf Anfrage oder auf der Webseite
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (MingW32)
Comment: Weitere Infos: siehe http://www.gnupg.org

iEYEARECAAYFAj8hCFsACgkQx9lyswRjeUYtCACg/VzMPheR+Cy+jeDZgORjBueF
cAoAn0BJbw/YGANXlJxX2RRNUYiP6HpQ
=mpkh
-----END PGP SIGNATURE-----