Zur Navigation

Suchmaschinenfreundliche URL´s

1 tommik

Hallo,
nach dem ich jetzt knapp eine Stunde bei Google & Co hoffnungslos gesucht habe, starte ich hier mal ein neues Thema.

Der Zeit sieht meine Seiten-Adresse von einer Unterseite so aus:

/ordner/index.php?site=unterseite

Nun möchte ich aber, dass die Unterseite als ".html / .htm " angezeigt wird, damit Suchmaschinen meine Website besser auffinden können.

/ordner/unterseite.html

Wie wäres das realisierbar?

Gruß,
tommik.

22.03.2006 16:48

2 Jörg

Hallo tommik,

falls mod_rewrite möglich ist, kann man das folgendermaßen bewerkstelligen:

1. folgende Zeilen in die .htaccess im Verzeichnis /ordner/:

RewriteEngine On

RewriteBase /ordner/

RewriteRule ^(.+)\.html$ index.php?site=$1
(Falls dies nicht funktioniert, ohne die Zeile "RewriteBase /ordner/" versuchen)

2. Alle Links im Script ändern von /ordner/index.php?site=unterseite auf /ordner/unterseite.html

22.03.2006 17:12

3 tommik

Hallo,
vielen Dank, hat erstmal wunderbar geklappt ;-).

Nun tritt aber ein kleines äußerliches Problem auf.

Es gibt auch noch eine Seitenadresse die so lautet:

index.php?site=unterseite&kat=zweite_unterseite

In der .htaccess habe ich folgendes geschrieben:


RewriteRule ^(.+)\.html$ unterseite&kat=zweite_unterseite

Es funktioniert mit dem einem solchen Link:

unterseite&kat=zweite_unterseite.html

Ich hätte allerdings gerne, dass die Adresse so lautet:

zweite_unterseite.html

Ist das möglich?

Gruß,
tommik.

22.03.2006 20:05

4 Jörg

Das funktioniert, wenn "unterseite" konstant ist:

RewriteRule ^(.+)\.html$ index.php?site=unterseite&kat=$1

$1 ersetzt immer den ersten Ausdruck in Klammern, in diesem Fall (.+)

22.03.2006 22:07

5 tommik

Mhh, irgendwie funktioniert das nicht.
Aber


unterseite&kat=zweite_unterseite.html

(die Adresse) funktioniert immer noch.

23.03.2006 13:11 | geändert: 23.03.2006 13:12

6 Jörg

Die alten dynamischen Adressen funktionieren auch weiterhin, mit Mod_rewrite werden nach außen hin nur die neuen statischen Adressen simuliert.

Was heißt "irgendwie funktioniert das nicht" genau? Was passiert, wenn du zweite_unterseite.html im Browser aufrufst? Fehlermeldung 500 (Interner Server Error) oder 404 (Nicht gefunden)?

23.03.2006 13:59

7 tommik

Es erscheint die Index-Seite ;-).

Du hast mich aber glaube ich missverstanden. Dass die dynamischen Adressen auch weiterhin funktionieren ist mir bewusst. Nur funktioniert die Adresse (s.o). (Genau wie ich es vorher auch hatte). Aber wenn ich nur zweite_unterseite.html eingebe funktioniert es nicht.


Gruß,
tommik.

23.03.2006 14:04 | geändert: 23.03.2006 14:05

8 Jörg

Es erscheint die Index-Seite

Dann erhält das Script wohl nicht die erforderlichen Variablen

Das "unterseite" in index.php?site=unterseite&kat=zweite_unterseite ist auch ein konstanter Begriff? also nicht index.php?site=3&kat=zweite_unterseite oder ähnliches

"unterseite&kat=zweite_unterseite.html" ist eigentlich nur ein unvollständiger Query String - dass du da überhaupt etwas angezeigt bekommst, wundert mich

23.03.2006 14:49

9 Chrisber (Gast)

Ich arbeite mit ihm an einer Seite,
er meint, das nicht unterseite&kat=zweite_unterseite.html heißen soll, sondern unterseite_zwei.html ohne &kat ;)

Also, die PHP-Variable kat soll im htaccess mit _VARIABLENINHALT ersetzt werden, so dass unterseite_VARIABLENINHALT.html rauskommt.

So meinte er das ;)

23.03.2006 16:30

10 Jörg

Also wenn die neue Adresse lauten soll:
unterseite_zwei.html

... und die alte Adresse lautet:
index.php?site=unterseite&kat=unterseite_zwei

... sollte das so ersetzt werden können:

RewriteRule ^(.+)\.html$ index.php?site=unterseite&kat=$1

Wenn "unterseite" allerdings auch variabel ist, dann muss man diese Variable mit in die neue Adresse reinnehmen, z.B.:
unterseite-unterseite_zwei.html

und so ersetzen:

RewriteRule ^(.+)-(.+)\.html$ index.php?site=$1&kat=$2

Falls beides nicht funktioniert - wie genau lauten dann die alte und die neue Adresse - und welche Bestandteile sind variabel und entsprechen sich (in meinen Beispielen fettgedruckt)?

23.03.2006 19:00 | geändert: 23.03.2006 19:04