banjo1: Modrewite | Endung entfernen? | Weiterleitung?

Hallo, ich hoffe ich in bei sonsitges 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.

-------------------------------------------------------------------------
[code lang=html]# 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: http://www.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 http://www.xyz.de/bla/seite.html aufruft auf http://www.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 http://www.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.

  1. hi,

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

    Naja, was passiert denn dann mit .jpg .gif .pdf .doc .xls .png .otto?

    Also ich mach ja auch Einiges mit rewrite, aber an der Stelle find ich die Erweiterungen ausnahmsweise mal gut für einen übersichtlichen Hack in der Serverconfiguration.

    Nurmalso als Vorschlag.

    Horst

    1. hi,

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

      Naja, was passiert denn dann mit .jpg .gif .pdf .doc .xls .png .otto?

      Also ich mach ja auch Einiges mit rewrite, aber an der Stelle find ich die Erweiterungen ausnahmsweise mal gut für einen übersichtlichen Hack in der Serverconfiguration.

      Nurmalso als Vorschlag.

      Horst

      wollte es eigentlich auch nur für .shtml (hatte ich vergessen zu schreiben)

      damit die alten links in die neuen umgewandet werden.

      ---------------------------------------------------
      RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]*.shtml
      RewriteRule (.+).[^/]+$ /$1 [L,R=301]
      ---------------------------------------------------

      benütz ich jetzt

  2. @@banjo1:

    nuqneH

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

    Sicher?

    Ich halte MultiViews für passender als RewriteRule.

    http://httpd.apache.org/docs/2.2/content-negotiation.html
    http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)