Zur Navigation

index.php abschneiden

1 Jan

Immer wieder bekomme ich Aufrufen, an welche einfach ein index.php angehängt sind.

/irgendwo/irgendwas.htmlindex.php
/irgendwo/irgendwas.phpindex.php

Wie könnte ich diese abschneiden und auf den restlichen, dann stimmenden, Seitenaufruf weiterleiten ?

09.10.2012 09:05

2 Jörg Kruse

Würde ich so probieren:

RewriteRule ^(.*[^/])index\.php$ http://example.com/$1 [R=301,L]

09.10.2012 09:13

3 Jan

Danke .. die Regel muss ich mir erstmal näher ansehen. Aber gerade eben hatte ich durch Versuche diese erstellt:

RewriteCond %{REQUEST_URI} ^(.*\.html)(index\.php)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*\.php)(index\.php)$
RewriteRule ^(.*)$ %1 [R=301,L]

und ... sie tut was sie tun soll :)

09.10.2012 11:47

4 Jan

Zitat von Jörg

RewriteRule ^(.*[^/])index\.php$ http://example.com/$1 [R=301,L]

Was macht eigendlich genau der fett markierte Teil ?

^ ab Beginn

(
.* können irgendwelche Zeichen vorkommen

[^/] bis irgendwann ein /
)

vor einem folgenden Eintrag index.php steht ?

$ und dann endet ?

Ist wirklich nicht so einfach alles sofort zu verstehen ;-)



12.10.2012 11:45

5 Jörg Kruse

Das ^ in [^/] ist ein Negationszeichen. [^/] bedeutet also: irgendein Zeichen außer "/".

^(.*[^/])index\.php$ würde auf blaindex.php matchen, aber nicht auf bla/index.php

12.10.2012 12:01

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]