Bob: Rewrite: Optional Verzeichnis/Dateiendung

Beitrag lesen

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.