PHP SEO Friendly URLs

LuckySt

Mitglied
Hallo,

mal wieder stehe ich wie der Ochs vorm Berg und komme nicht drauf.
Vielleicht ist die Lösung für mein Problem auch ganz einfach und ich finde sie nicht bzw. mache ich es mir wieder viel zu schwer. Denke mal hier kann mir bestimmt einer auf den rechten Weg helfen.

Mein Problem:

Ich habe eine Seite die über z.B. solch einen Link aufgerufen wird:
http://www.meinedomain.de/event.php?id=123456789

Jetzt möchte ich diese URL aber für SEO verschönern in z.B.:
http://www.meinedomain.de/01-02-2016-Hamburg-Deutschland

Wie bekomme ich das hin?
Habe alle Daten in einer MySQL Datenbank und lasse die Einträge in z.B. einer Tabelle ausgeben. In dieser DB stehen auch alle Daten die ich gerne in der URL hätte wie Tag, Monat, Jahr, Ort und Land. Auch die ID ist dort in der DB Zeile.

Vielleicht kann mir ja hier jemand einen Denkanstoß geben.

Danke
 
Du legst einfach eine entsprechende RewriteRule in Deiner HTACCESS-Datei an, welche die erkannten Werte dann an ein PHP-Skript von Dir übergibt und dann in der Datenbank nachsieht, welcher Datensatz/Seite damit gemeint ist.
Code:
RewriteEngine On
RewriteRule ^([0-9]{2})-([0-9]{2})-([0-9]{4})-([A-Za-z\-]+)$ dispatcher.php?day=$1&month=$2&year=$3&location=$4 [L,QSA]
PHP:
$day      = filter_var( INPUT_GET, 'day'     , FILTER_VALIDATE_INT );
$month    = filter_var( INPUT_GET, 'month'   , FILTER_VALIDATE_INT );
$year     = filter_var( INPUT_GET, 'year'    , FILTER_VALIDATE_INT );
$location = filter_var( INPUT_GET, 'location', FILTER_SANITIZE_STRING );

if ( !$day || !$month || !$year || !$location ) {
  // error: do something
} else {
  // success: seek in database
}
 
Hallo,
vielen Dank Parantatatam.
Sorry das ich mich erst jetzt wieder melde aber es ist was dazwischen gekommen.
Jetzt muss ich leider von ganz vorne anfangen.
Hier noch mal ein kleiner Überblick:

Ich habe eine Datenbank mit folgenden:

id | tag | monat | jahr | ort | stunde | minute | beschreibung
147 | 05 | 04 | 2015 | Bonn | 11 | 30 | Hier ein Test Event
.....

Diesen Eintrag zeige ich mit eine .php Datei wie z.B. http://www.meinedomain.de/event.php?id=147 an.
Funktioniert auch soweit.
Jetzt möchte ich aber den Suchmaschinen zuliebe die URL anpassen in z.B.
http://www.meinedomain.de/event/bonn/2015_04_05-11_30/
oder vielleicht
http://www.meinedomain.de/event/2015_04_05/11_30/bonn/
bzw. was was auch von Suchmaschinen gut gefunden bzw. verarbeitet wird.

Kann mir hierbei vielleicht jemand helfen?

Vielen lieben Dank
 
Hi,

die Antwort oben beschreibt das Vorgehen (das auch jetzt unverändert zutrifft).
Ist dabei etwas unklar (wenn ja, was genau)?
 
Also müsste bei mir dann die .htaccess Datei so aussehen:

Code:
RewriteEngine On
RewriteRule ^([0-9]{2})-([0-9]{2})-([0-9]{4})-([A-Za-z\-]+)$ event.php?tag=$1&monat=$2&jahr=$3&ort=$4 [L,QSA]

und in die event.php das rein:

Code:
$tag      = filter_var( INPUT_GET, 'tag'     , FILTER_VALIDATE_INT );
$monat    = filter_var( INPUT_GET, 'monat'   , FILTER_VALIDATE_INT );
$jahr     = filter_var( INPUT_GET, 'jahr'    , FILTER_VALIDATE_INT );
$ort = filter_var( INPUT_GET, 'ort', FILTER_VALIDATE_INT );
if ( !$tag || !$monat || !$jahr || !$ort ) {
  // error: do something
} else {
  // success: seek in database
}

Und die URL ist dann so:
http://www.meinedomain.de/05-04-2015-Bonn

Ist das richtig?
Weil so klappt es nicht bei mir.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück