[hilfe] Umstellung auf SEO - Links mit mod_rewrite

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

[hilfe] Umstellung auf SEO - Links mit mod_rewrite

Beitragvon EselDompteur » 18.04.2006 21:01

Hallo Community ...

... ich habe nun nach langem überlegen mich dazu entschlossen mein Projekt auf SEO - Links mit mod_rewrite umzustellen ...

Nun habe ich hier gelesen wie ein großer, und bin erschlagen von den varianten und lösungsansätzen. und keines will bei mir recht funktionieren. ich hoffe also, das mit jemand den lösungsweg gibt und vielleicht auch erklärt ;)

google test aus der faq greift -> mod_rewrite ist also funktionstüchtig. Lösungsansatz aus der faq habe ich probiert, bringen aber nicht den für mich gewünschten erfolg.

also: ich habe derzeit alle links bei mir im Projekt so aufgebaut:

http://foo.de/index.php?seite=bar&dies= ... es=welches

defakto ist es aber so, das die anzahl der parameter die mit einem link übergeben werden unterschiedlich. es ist nicht so, das der link immer gleich aufgebaut ist was mich zu einem problem führt.

Ich möchte nun die links so aufbauen:

http://foo.de/bar/dies/das/jenes/welches.html

(der letzte Parameter sollte also immer noch das html angehängt bekommen, damit es nach einem sttischem link _aussieht_)

der erste parameter der übergeben wird, wird _immer_ der variable seite übergeben /index.php?seite=...

weswegen ich diese auch nicht in der url wiederholen will.

so sollte also

Code: Alles auswählen
http://foo.de/impressum.html
an index.php?seite=impressum übergeben werden und
Code: Alles auswählen
http://foo.de/impressum/action/kopieren.html
dann an http://foo.de/index.php?seite=impressum&action=kopieren

ich hoffe ich konnte das verständlich rüberbringen. Problem ist dabei eben, das die anzahl der parameter nicht kontinuierlich gleichbleibend ist, die anzahl der parameter nicht immer ein paar ergeben und am ende immer das .html angefügt ist ...

Hoffentlich kann mir da einer weiter auf die sprünge helfen, denn ich werde schon langsam irre und sehe nur noch wirr warr ;)

meine eigenversuche habe ich alle komplett in die tonne getreten, so das ich da bei NULL beginne. bestes ergebnis war noch aus der faq, nur wie erwähnt nicht das was ich möchte.

vielen dank schon mal im voraus.

mfg
EselDompteur
.
.
 
Beiträge: 7
Registriert: 23.10.2005 13:17
Wohnort: Probsteierhagen

Beitragvon Bob » 18.04.2006 23:12

Wie sehen denn deine Zugriffsmöglichkeiten auf die httpd.conf/ServerConfig/bei Confixx: "httpd spezial" aus? Das ist insoweit wichtig, als das darüber entscheidet, ob das N-Flag genutzt werden kann, oder nicht. Die Problematik entsteht durch den Slash.
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon EselDompteur » 18.04.2006 23:20

Hallo Catherham

da es sich um meinen eigenen Server handelt, habe ich auch kompletten rootzugriff. Soweit ich die N-Flag problematik gelesen habe währe ich an einer Lösung intressiert, die mir später die Möglichkeit bietet den Script evtl. zu verkaufen. Dabei ist dann nicht immer davon auszugehen das der jeweilige Kunde die selben Möglichkeiten hat wie ich. Daher bevorzuge ich die .htaccess-Variante
Sie ist aber kein zwingendes Muss. Die Übergabe kann und darf aber auch gerne an eine FQDN gehen, wenn das helfen sollte ;)

p.s. meine bisheriges weiterlesen hat für mich persönlich ergenen, das es wohl auf eine mehrzeilige Lösung hinauslaufen wird, also mit mehreren Regeln ? ... Eine für die "reine" *.html -> *.php welche ja in der FAQ zu finden ist und dann eine weitere, sofern die erste nicht greifen sollte ?! ... hab ich das soweit schon mal richtig erkannt ?

mfg
EselDompteur
.
.
 
Beiträge: 7
Registriert: 23.10.2005 13:17
Wohnort: Probsteierhagen

Beitragvon Bob » 19.04.2006 11:01

Etwas in dieser Art sollte im per-server context funktionieren:
Code: Alles auswählen
RewriteEngine on
RewriteRule ^/([^/]+)/?(.*)\.html$ $2?seite=$1 [NS]
RewriteRule ^([^/]+)/([^/]+)/?(.*) $3?$1=$2 [NS,QSA,N]
RewriteRule ^$ /index.php [NS,L]


Bei Verwendung von .htaccess-Dateien kann man nur raten das Splitting selbst in PHP zu erledigen, also alle dortigen filepaths, die auf .html enden, an die /index.php weiterzuleiten und dort dann $_SERVER['REQUEST_URI'] auszuwerten:
Code: Alles auswählen
RewriteRule \.html$ /index.php [L]


Grüße
Robert
Zuletzt geändert von Bob am 30.04.2006 16:34, insgesamt 1-mal geändert.
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon EselDompteur » 19.04.2006 11:35

Caterham hat geschrieben:Bei Verwendung von .htaccess-Dateien kann man nur raten das Splitting selbst in PHP zu erledigen, also alle dortigen filepaths, die auf .html enden, an die /index.php weiterzuleiten und dort dann $_SERVER['REQUEST_URI'] auszuwerten:
Code: Alles auswählen
RewriteRule \.html$ /index.php [L]


ja autsch ... darauf hätte ich nun wirklich auch selber kommen könnten ... manchmal sieht man den wald vor lauter bäumen nicht ... Ich danke recht herzlich für das Augen öffnen ;) ... aber die per-server werd ich auch mal ausprobieren ;)
EselDompteur
.
.
 
Beiträge: 7
Registriert: 23.10.2005 13:17
Wohnort: Probsteierhagen


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron