Modrewite | Endung entfernen? | Weiterleitung?

Hallo, ich hoffe ich hier richtig, weil für Modrewite habe ich nichts passendes gefunden.

Das soll geschehen:
Bei meiner Seite möchte ich, dass die dateien auch ohne Endung aufgerufen werden können.
Den passenden Code habe ich schon dazu.


Replace “.shtml” by “”

RewriteCond %{REQUEST_URI} !/$

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME}.shtml -f

RewriteRule ^(.*)$ $1.shtml [L]

Replace “.php” by “”

RewriteCond %{REQUEST_URI} !/$

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.*)$ $1.php [L]

External redirect for files requested as a directory (remove trailing slash)

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} ^(.*)/$

RewriteCond %1 -U

RewriteRule ^(.*)$ %1 [L,R]


Das funktioniert auch wunderbar.

Ist es nun möglich, wenn ein Link so lautet: xyz.de/seite.shtml
dass .shtml entfernt wird?
Und die passende Datei trozdem ausgeleifert wird.
(der obrige Code leitet nur bei keiner vorhandenen Endung weiter.

Und wie kann ich am besten die Url änder. Ich habe einige dateien in einen unterordner verschoben. Nun ist aber bei google immernoch die alte Url gespeichert. Nun möchte ich wenn man xyz.de/alt/bla/seite.html weitergelitet wird.


RewriteRule ^bla/(.*)$ /alt/bla/$1 [R=301]

so habe ich es bisher gelößt, funktioniert auch aber google hat anscheinend Probleme damit.
Wie kann ich es machen, dass exakt nur wenn xyz.de/bla/xxxx.html (es sind mehrere dateien in dem ordner) aufgerufen wird nach .de und vor bla der ordner alt eingefügt wird?

Schonmal danke für eure Hilfe.

Einfach eine weitere RewriteRule dazu:

Ganz oben, dann wird auf die neue URI weitergeleitet.