htaccess mod_rewrite - usuwanie index.php z URL

0

Witam mam taki standardowy plik htaccess żeby można było pomijać index.php w URLach.

RewriteEngine on
RewriteBase /
RewriteCond $1 !^([a-zA-z0-9/])
RewriteRule ^(.*)$ index.php [L]
RewriteCond $1 !^(index.php|clientdir|system|application)
RewriteRule ^(.*)$ index.php/$1 [L]

No i działa to dobrze ale tak, że można jednocześnie korzystać ze ścieżek z index.php i bez.

Chciałem osiągnąć taką funkcjonalność żeby adresy z index.php były przekierowane (przez 301) na adresy bez index.php.

No więc po RewriteBase dodałem taką linijkę:
RewriteRule ^index.php/(.*)$ http://domena.pl/$1 [R=301,L]
Ale to nie działa -> Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.

No i nie wiem, próbowałem różnych wpisów i nie udaje mi się tego zrobić. Może ktoś pomóc?

0

Też kiedyś tak się bawiłem i nie udało mi się tego okiełznać. Kiedy zajrzysz do logów modrewrite zobaczysz, że dla apache:
RewriteRule ^(.*)$ index.php/$1 [L]
To wcale nie koniec( mimo [L]), tylko weźmie wynik, czyli index.php/jakistekst i przepuści jeszcze raz przez reguły, stwierdzi że
^index.php/(.*)$ pasuje i oczywiście powoduje przekierowanie, i tak w kółko.
Możesz spróbować pozmieniać wszystkie "[L]" na "[L,NS]" ale to tylko strzał.

0
GhostDog napisał(a)

http://kohanaphp.com/tutorials/remove_index

a możesz wskazać w którym to momencie tego artykułu pojawia się rozwiązanie mojego problemu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1