Gunther: mod_rewrite / Hilfe bei RewriteRules

Beitrag lesen

Moin Sven!

Vielen Dank für deine gewohnt hilfreich und fundierte Antwort.

Das sind alles recht komplexe Operationen, die aber ja nicht als Default vorkommen - weil du deine URLs ja nicht so gestaltest, dass sie deinen eigenen Regeln widersprechen.

Deshalb würde ich diesen ganzen Schmodder aus dem Rewriting raushalten und explizit in den Code tun, welcher...

-------------- ohne Redirect --------------
4. alle Requests sollen an eine Datei, z.B. start.php weitergeleitet werden

alle deine Requests ohnehin analysieren muss, und der dann ggf. anstelle einer geforderten Seite einen Redirect ausspuckt.

Ist zwar im Endeffekt unnütze doppelte Arbeit, weil der Redirect natürlich nahezu instant wieder genau dasselbe Skript ausführt, was aber ja blöderweise erneut eingelesen, geparst und ausgeführt werden muss, aber was tut man nicht alles für die URL-Reinheit...

Das habe ich mir (natürlich) auch schon überlegt gehabt, weil es für mich sicherlich auch deutlich einfacher zu handhaben wäre, als das "Gewurschtel" mit mod_rewrite. Nur der Punkt mit "unnütze doppelte Arbeit ..." hat mich bisher davon abgehalten. Allerdings hast du natürlich auch mit "weil du ja ein vernünftiges URL-Schema erdacht hast" Recht, sodass dieser Fall ja nur dann auftritt, wenn ein User nicht "auf Googles Suchergebnisse" klickt.

...beispielsweise könnte man anstelle eines Redirects auch mit einem 404 antworten - schließlich sind deine eigenen URLs ja alle existent und führen zu Seiten - und wenn sich irgendwer URLs ausdenkt und sich vertippt, dann sollte er das auch feststellen. URLs tippt man heutzutage doch sowieso nur noch ein, wenn sie kurz sind und nicht in der History stehen. Ansonsten klickt man auf Googles Suchergebnisse oder die Seitennavigation.

Das ist eben so eine zweischneidige Sache, wobei es imho jeweils gute Argumente für jede der beiden Varianten gibt.

Punkt 4 ist letztlich der eigentlich wichtigste, da sämtliche Requests über meine Startdatei laufen sollen.

Generell soll natürlich auch vermieden werden, dass eine Resource unter mehr als einer URL erreichbar ist - Stichwort "Dublicate Content". Insbesondere im Root-Verzeichnis.

Du überbewertest Googles Rating solcher Ereignisse.

Hmmm ..., mag sein. Trotzdem bin ich ein Freund von URL normalization - nicht_nur_wegen Google.

Sowas ergibt sich gar nicht erst, weil du ja ein vernünftiges URL-Schema erdacht hast, welches jede URL eindeutig zu einem Content mappt - was wiederum das Kriterium ist, ob die URL existiert.

Diese "Problematik" besteht ja auch in allererster Linie beim Root-Verzeichnis und Directories aufgrund serverseitiger "Automatismen" im Bezug auf Index-Dateien.

Eigentlich wäre mir auch am liebsten, dass man im Root-Verzeichnis "manuell" gar keine Datei aufrufen kann, ...

Glaube nicht, dass das sinnvoll ist.

Ja, nach nochmaliger Überlegung glaube ich das auch nicht.

Und da ich ja weiß, dass wir hier bei SELFHTML sind, hier mein bisheriger "Entwurf" der .htaccess:

Boah, da erkenne ich auf den ersten Blick absolut gar nichts, was da mit der URL angestellt wird. Und da wäre es dann deutlich angenehmer, wenn die diversen Umwandlungen der URL sich in dokumentiertem PHP-Code abspielten, anstelle in eher undokumentierten RewriteRules und RewriteConds.

Ja, ja - ist ja schon gut. ;-)
Sorry, dass ich die Dokumentation bei den paar Rules vergessen habe - ich dachte halt, Profis wie du erkennen das auch so auf den ersten Blick.

FAZIT:
Ich werde wohl meine RewriteRules in der htaccess auf ein Minimum beschränken und den Rest lieber gleich in meinem PHP-Script machen und dann ggf. per Location-Header das Rewriting/ Redirecting vornehmen.

Also besten Dank nochmal - oft hilft es halt schon, wenn man mal eine andere (fachkundige) Meinung zu den eigenen Ideen liest.

Gruß Gunther