Hallo!
Vielen Dank für eure nette Hilfe! ;-)
- wenn ein Punkt vorhanden ist, soll dieser und alles was danach folgt abgeschnitten werden => sichtbare Weiterleitung
^(.*).(.*)$
^ Anfang des Strings
. beliebiges Zeichen
* voranstehender Ausdruck/Zeichen 0 oder mehrmals
. ein Punkt
$ Ende des StringsDie gefundenen Bestandteile des Ausdrucks lassen sich mit $1, $2 usw verwenden
- trailing slash(es) sollen ebenfalls entfernt werden => sichtbare Weiterleitung
^(.*)/$
Matcht auf alles, was mit einem Slash endet.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-dggf. solltest du noch !-l hinzufügen, damit du nicht nur Dateien (f) und Verzeichnisse (d) sondern auch Symbolische Links (l) ausschließt.
Also dank eurer Hilfe habe ich jetzt folgendes:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
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 ^(.*)$ /test.php?$1 [L]
</IfModule>
Das funktioniert soweit auch wie gewünscht. Bei mehreren Punkten wird alles ab dem ersten Punkt abgeschnitten.
Das Ganze ist ja auch nur für den Fall, dass ein User selber etwas in die Adresszeile eintippt. Suit kennt den Zusammenhang.
Ein Problem habe ich aber trotzdem noch. Denn wenn ein User jetzt auch noch auf die tolle Idee kommt, einen Query String anzuhängen, greifen die obigen Regeln nicht mehr.
Wie kann ich dieses Problem denn jetzt zusätzlich noch beseitigen?
Und da ich (noch) nicht 100%ig weiß, ob ich nicht evt. später doch auch noch (quasi) "reguläre" Links mit einem Query String habe, darf dieser also nicht einfach pauschal "abgeschnitten & verworfen" werden.
Gruß Gunther