Hallo Selfgemeinde!
Egal wie lange und wie intensiv ich mich mit diesem Kapitel beschäftige, ich finde alleine keine 100%ig funktionierende Lösung. Deshalb wäre es sehr nett, wenn ihr mir bitte dabei helfen würdet - danke!
Ich möchte gerne, dass die .htaccess in meinem Root-Verzeichnis folgende Dinge per Rewrite erledigt:
-------------- Redirects --------------
1. Trailing Slashes sollen entfernt werden
2. mehrere mehrfach vorkommende Slashes sollen jeweils auf einen reduziert werden
3. irgendwelche Dateiendungen, bzw. generell einfach alles ab einem Punkt '.' in der URL soll entfernt werden
-------------- ohne Redirect --------------
4. alle Requests sollen an eine Datei, z.B. start.php weitergeleitet werden
Zur Erläuterung:
Die Punkte 1-3 dienen in erster Linie dem "Komfort" des Users, sprich sollen u.a. Tippfehler durch manuelle Eingabe "ausbügeln".
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.
Eigentlich wäre mir auch am liebsten, dass man im Root-Verzeichnis "manuell" gar keine Datei aufrufen kann, wobei ich mir nicht ganz im Klaren darüber bin, ob das wirklich geht, bzw. sinnvoll ist? Zwar liegen eben fast alle anderen Files in separaten Directories, aber für die Bots bspw. gibt es natürlich eine robots.txt!
Und da ich ja weiß, dass wir hier bei SELFHTML sind, hier mein bisheriger "Entwurf" der
.htaccess:
DirectoryIndex start.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{REQUEST_URI} ^/start.php$
RewriteRule . / [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} ^([^.]*). [OR]
RewriteCond %{REQUEST_URI} ^(.*)/$
RewriteRule ^(.*)$ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /start.php/$1 [L,NE]
</IfModule>
Für eure Hilfe, Tipps, Anregungen und Vorschläge meinen besten Dank im Voraus!
Gruß Gunther