RewriteRule ^(.*/)(?:([^/.]*).([a-z]{2,4}))?$ index.php?dir=$1&site=$2&typ=$3 [L]
Das funktionier ja nur bei */*.* also nur mit Punkt und Slash, oder?
auch bei
*/*.*
*/.*
*/
(s. oben).
Ich möchte es aber mit und ohne Punkt/Slash. (Was beteutet das "?:" ?)
Ein Fall ozhne Punkt/Slash ("file") soll doch gerade nach dem 1. Posting nicht passen?
?: -> es wird keine Backreference erstellt.
Hab eine andere Regel:
RewriteRule ^(.*/|)([^/.]*)(.|)(.*)$ index.php?dir=$1&name=$2&typ=$4 [L]
Wolltest du nicht, dass in den vier Fällen die Regel eben nicht passt? So habe ich zumindest "404 bei..." im 1. Posting gedeutet.
404 bei
-"dir/file"
-"file.ext"
-"file" (ohne Dateiendung)
-".ext" (Nur Dateiendung)
Deine regEx passt auch auf diese Fälle.