PHP Suchmaschinenoptimierung und GET-Variablen?

asseskiller

Lt. Junior Grade
Registriert
Sep. 2005
Beiträge
447
Hallo leute,

kurze frage:
Sind in der URL enthaltene GET-Variablen für Suchmaschinen Relevant (als sortierkriterium)

Wäre es zb. besser namen in getvariablen zu verwenden anstatt ID's?
Bsp:

"www.beispielseite.de?beispiel=123"

"www.beispielseite.de?beispiel=Frage_nach_suchmaschinenoptimierung"

Würde die 2. seite besser bewertet werden bei gleichem inhalt?
 
Du solltest via mod_rewrite solche URLs erstellen:

"www.bla.de/inhalt/artikel/wasauchimmer/frage_nach_suchmaschinen/"

Diese sehen für den User besser aus und werden auch von SuMas mit gewertet und in eine Suche einbezogen.
 
Hab da jetzt nen bissl was drüber gelesen, aber keine vernünftiges tutorial gefunden. Kennt hier jemand nen ernünftiges mod_Rewrite tutorial?

(wennn möglich auf deutsch. Will da nicht mit nem oxford dict. vor sitzen)
 
hmmm da war ich schon.
Finde das "tut" da sehr unvollständig.
Ich mag es nicht so, wenn man sich durch foren wühlen muss.
Hatte mir eigentlich sowas erhofft wie quake-php.net
aber gut ich werd mich durchfuchsen
 
Falls modrewrite nicht möglich ist, da Webhoster das nicht anbietet, kannst du auch mit Fehlerseiten arbeiten. Das funktioniert prima, solang man die Fehlerseiten wieder zu echten umwandelt. Ansonsten sind Get-Variablen ungern gesehen.

Grobe Erklärung der 404-Umleitung
Mit in der .htaccess bspw. mit folgendem Eintrag erstellen,
Code:
ErrorDocument 404 /verarbeite.php
damit jede nicht gefundene Seite dahin umleitest. In dieser "verarbeite.php" sollte zuerst
PHP:
header("Status: 200 OK"); 
header("HTTP/1.1 200 OK");
angegeben werden. Damit setzt du den 404-Status zurück. Danach kannst mit folgenen Code
PHP:
// Komplette URL für das <base href="..." />
$basehref = 'http://'.$_SERVER['HTTP_HOST'].str_replace( strrchr( $_SERVER['PHP_SELF'], '/' ), '/', $_SERVER['PHP_SELF'] ); 

 // Speichert die aufgerufene Datei -> bspw.: "/index.php"
$d_domain = strrchr($_SERVER['PHP_SELF'],'/');

// Speichert den realen Pfad ohne Domain -> bspw.: /seite/
$d_realpath = str_replace($d_domain,'/',$_SERVER['PHP_SELF']); 

// ermöglicht Leerzeichen im Grundpfad -> bspw.: /Web Seite/ -> /Web%20Seite/
$d_realpath = str_replace(' ','%20',$d_realpath); 

// Liesst den virtuellen Pfad inkl. realen Pfad -> bspw.: /seite/content123/
$d_virtualpath = $_SERVER['REQUEST_URI']; 

// speichert nur den virtuellen Pfad
$_url = ($d_realpath != '/') ? str_replace($d_realpath, '', $d_virtualpath) : substr($d_virtualpath, 1);	

// Array erstellen
$_url = explode('/', $_url);

// Leere Elemente aus Array löschen und neu nummerieren
foreach($_url as $nr=>$wert){if($wert == ''){unset($_url[$nr]);}}
$_url = array_values($_url);
ein Array erstellen. Dieses Array ($_url) enthält in Reihenfolge jede Angabe der Adresse durch "/" getrennt ab den Pfad wo die "Verzeichnisse" eigentlich nicht mehr existieren. Angenommen, es gibt keine Unterverzeichnisse, dann werden folgene URLs so umgewandelt:

www.webseite.de/willkommen
->$_url[0] == 'willkommen'

www.webseite.de/content/willkommen
->$_url[0] == 'content'
->$_url[1] == 'willkommen'

Wichtig ist nur, das du im Header der HTML-Datei das <base href="..." /> angibst, da die Seite von einen nicht existierenden Ort ausgeht. Jeder relative Link würde in die irre führen. Bspw. würde eine eingebundene CSS Datei von dem Ort ausgehen, der in der Adressleiste steht. Daher musst du absolute Pfade nehmen. Die $basehref speichert diesen, sodass alle Links und eingebundene Dateien wieder den korrekten Pfad haben.

Leider würde eine ausführliche Erklärung zuviel Zeit in Anspruch nehmen. Ich kann, bzw. will dir auch kein komplettes Script geben, da ich diesen für meinen Job nutze. Aber mit den Infos und Codeschnippsel solltest du auf den richtigen Weg kommen.
 
Zurück
Oben