Schöne URLs bei Suche
Auf den meisten Websites gibt es eine Suchfunktion, die über ein Formular eine get-Variable an ein Script umleitet, was dann in einer Datenbank nach dem Begriff sucht. Die URLs werden dann meist in der Form example.com/index.php?search=suchbegriff aufgerufen. Das sieht nicht gerade schön aus, wenn der Rest der Seite auf “lesbare” URLs setzt.
Das gleiche Problem hatte ich bei dbgsalto.de. Das Formular verwendet die get-Methode, hängt also die Variable und ihren Inhalt an die URL dran. Die Ausgabe kann man in der Form nicht verändern. Also habe ich ein kleines PHP-Script geschrieben, welches die Suchvariable per post entgegennimmt und den User dann per PHP-Umleitung auf eine nett aussehende Adresse weiterleitet. Das Script, was per post aufgerufen wird, ich habe es umleitung.php genannt, sieht bei mir so aus:
<?php
header("Location: ../suche/{$_REQUEST['search']}");
?>
Vorraussetzung ist ein Webserver mit aktiviertem mod_rewrite und eine RewriteRule in der .htacces-Datei, die bei mir so aussieht:
RewriteRule ^suche/(.*)$ index.php?search=$1
Das search= kann natürlich angepasst werden.
Der User bekommt von der Umleitung nichts mit und landet bei einer Suche, etwa nach ‘Bla’, auf http://www.dbgsalto.de/suche/Bla :)