.htaccess RewriteRule Speicheradresse

H

himan1000

Guest
Hallo htaccess Experten,

vielleicht ist jemand hier, der sich ein bissel auskennt:

Folgendes möchte ich Realisieren:

Da mein System über CMS Joomla läuft (1.5.11) und trotzdem die Adresse /index.php/datei.html
angezeigt wird, habe ich folgende Zwischenlösung gefunden:

RewriteRule index.php/.* http://www.domain.de/ [R=301]

Funktioniert auch ganz gut. Was mir gefallen würde:

Folgendes Grundprinzip: Die Datei hinter dem index.php soll automatisch auf die Url weitergeleitet werden. z. B. index.php/datei1.html zur Domain.de/datei1.html

RewriteRule index.php/datei.html http://www.domain.de/datei.html [R=301]
(so funktionierts auch)
Jedoch möchte ich nicht alle 2150 Dateien per manuell linken :-( gibts hier eine andere Möglichkeit?
 
Du kannst einen Ausdruck links in Klammern speichern und mit $1 rechts wieder aufnehmen

CODE RewriteRule index\.php/(.+)\.html http://www.domain.de/$1.html [R=301]
 
super, genau das was ich wollte! Ich wusste, dass man irgendwie mit dem $ etwas speichern / wiedergeben kann.
Vielen Dank!
 
Gibts auch die Möglichkeit, alle die nach index.php/ als 403 fehler darzustellen?
 
dankeschön!
Ich hoffe, dass jetzt Google meine Seiten nicht mehr als doppelten Titel und content findet.
Falls Sie noch eine elegantere Lösung mittels .htaccess wissen, gerne raus damit :)
Nutze Joomla mit dieser Webseite, verstehe zwar nicht, warum überhaupt noch Google den content index.php/... html findet, aber hoffe jetzt mal, dass es jetzt nicht mehr der Fall sein wird.
Viele Grüße
 
Die RewriteRule Regel so ändern, dass Fehlermeldung 404 kommt (also seite nicht gefunden) ist nicht möglich oder doch??
 
410 "Gone" ist möglich (was bei nicht mehr vorhanden Seiten auch passender ist als 404 "Not Found"):

CODE RewriteRule index\.php/.+ - [G]


PS:
wird nicht automatisch eine 404 angezeigt, wenn keine Rule aktiv ist?
 
Stimmt, ist eigentlich noch besser als 404, weil 404 könnte ja auch nur zeitlich begrenzt sein, falls mal der Server spinnt oder so.

Super, vielen Dank. Funktioniert super!

Derzeit habe ich in der htaccess noch folgende Befehle eingebaut:

#index.php verbieten

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(html?|php)\ HTTP/
RewriteRule ^index\.(html?|php)$ http://www.domain.de/ [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301]

#www erzwingen

RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301]

Mein Ziel: www erzwingen, geht und eben die www.domain.de/index.php auf www.domain.de weiterleiten. Leider wird im Crawler über Google trotzdem noch die index.php, die index.html (obwohl diese nicht exisitiert) und eben die www.domain.de erreicht. Alles mit dem gleichen Inhalt.
die index.html kommt vermtl. vom:

Nett wäre, wenn ein Crawler eben nur die www.domain.de findet. Wenns nicht geht, dann hoffe ich, dass Google das nicht als doppelten Content feststellt und damit die Seite schlechter gefunden wird.
 
Zurück
Oben