htaccess redirect zu groß/geht nicht
Der Titel ist eventuell etwas ungünstig gewählt den im Endeffekt werde ich nur eine kleine, aber feine Lösung für folgendes Problem zeigen.
Man hat über eine gewisse Zeit einigen Inhalt in seinem Forum, seinem Shop oder seiner Webseite den unendlichen weiten des Internets zur verfügung gestellt. In diesem Fall, werden sich viele Links in Foren, Testseiten und auch Suchmaschinen verbreitet haben. Doch was macht man, wenn man ein neues System einsetzt oder seine URL’s Suchmaschinenfreundlicher gestalten möchte? Richtig, viele greifen zu htaccess und setzen je nach Art dann doch meistens – zumindestens die wichtigsten Seiten – einen permanenten Redirect (301) ein.
Beispiel:
RedirectPermanent /sites/content.php?agb http://domain.de/agb
Wenn man nun einige hunderte Links hat, kann es sein, dass diese vom Webserver missachtet werden. Oftmals werden auch bei Hostingpaketen Begrenzungen gesetzt. Dies kann sehr einfach – sofern PHP vorhanden – umgangen werden. Man benötigt lediglich folgenden Codeschnipsel und eine Datei mit den Redirects-Zuordnungen.
PHP Codeschnipsel
redirects.csv
/sites/content.php?agb;http://example.tld/agb
/downloads/ubuntu.iso;http://downloads.example.tld/linux/ubuntu/desktop/latest
Es ist sehr wichtig, dass dieser Codeschnipsel am ANFANG einer Datei eingefügt wird.
Die redirects.csv kann beliebig lang sein, selbst bei tausenden neuen URL’s rutscht die Performance nicht ab.
2 Antworten
Du hast dir aber schon gedanken dazu gemacht, dass file die gesamte Datei in ein array einliest…?
Ich kann dir jetzt schon versprechen, dass das bei vielen Einträgen *extrem* Memory lastig ist, und das PHP MemoryLimit ist bei solchen Aktionen auf kleinen Hostern dann doch fix erreicht. (Gerade bei *tausenden* URLs is die Methode ziemlicher Quatsch)
Hab mir mal erlaubt, einen Verbesserungsvorschlag zu machen: https://gist.github.com/1419358
Cheers
Ist schon korrekt deine Anmerkung. Doch wenn man so viele unterschiedliche Links auf eine Seite hat das es memory lastig werden sollte, was bei der CSV tausende von Links sein müssten, hostet man meistens nicht mehr eine „kleine“ Seite sondern ein Shop, Forum oder anderes größeres Webprojekt auf einem VPS oder gar dedicated Server.
Es sollte ja auch nur schnell „verdeutlichen“ wie es möglich ist die Einschränkungen von htaccess bzw. Apache2 Redirects zu umgehen, wenn es zu viele werden.