Seite 1 von 1

[hilfe] Umstellung auf SEO - Links mit mod_rewrite

Verfasst: 18.04.2006 21:01
von EselDompteur
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

Verfasst: 18.04.2006 23:12
von Bob
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.

Verfasst: 18.04.2006 23:20
von EselDompteur
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

Verfasst: 19.04.2006 11:01
von Bob
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

Verfasst: 19.04.2006 11:35
von EselDompteur
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 ;)