Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mod rewrite] Prolem z poprawnym działaniem reguł
.chudy.
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 3
Dołączył: 15.06.2003
Skąd: kosmosu?

Ostrzeżenie: (0%)
-----


Witam, mam problem z poprawnym działaniem mod_rewrite. Korzystam z KohanaPHP i chce usunąć z urla index.php/shop , oraz móc korzystać z panelu admina wykorzystując krótki adres /admin. Niestety jak jak mam włączone oby dwie reguły, to cały rewrite nie działa. Pojawiają mi się dziwne błędy raz w logach miałem, komunikat że przekierowanie wpadło w pętle. Próbowałem różnych sposób i niestety samemu nie mogę sobie z tym poradzić. W tej chwili mój htaccess wygląda następująco

CODE
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin$ index.php/admin [L]
RewriteRule ^(.*)$ index.php/shop/$1 [L]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


najlepiej to powinieneś mieć na końcu gdyż przekierowuje Ci jeśli nic nie znajdzie - jeśli przekierowanie nie poprawne lub coś w tym stylu:
Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
... i reguła gdy powyższe spełnione
no i co najmniej na końcu jeden enter


same reguły htaccess po wykonaniu się wykonują się po raz kolejny by sprawdzić czy nie ma kolejnego dopasowania więc nie mogą za bardzo pasować reguły wyników do reguł szukania ;p - akurat tutaj najpewniej to Ci zapętla:
Kod
RewriteRule ^admin$ index.php/admin [L] //nawet jeśli ta linijka była by poprawna to przy następnym wglądzie w htaccess dopasuje do drugiej linii...
RewriteRule ^(.*)$ index.php/shop/$1 [L]

jak widzisz jedno pasuje do drugiego....

mało tego - zapętla się u Ciebie sama ta jedna reguła:
Kod
RewriteRule ^admin$ index.php/admin [L]

dokładnie nie wiem jaki masz adres i co chcesz osiągnąć ale jak już napisałem wynik przepisanego adresu nie powinwywać się do reguł szukanych gdyż plik jest przeglądany od początku z czego wynika zapętlenie....

tak więc u Ciebie powinna być mniej więcej taka kolejność:
Kod
RewriteEngine On
RewriteBase /
RewriteRule ^admin$ index.php/admin [L] // przy czym tą regułę na pewno ewidentnie trzeba zmienić - nie znam adresów więc nie jestem w stanie z palca wróżyć
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/shop/$1 [L]

przy czym jeśli chcesz się upewnić gdzie to Ci wszystko przekierowuje gdy ma się małe błędy o ile się nie zapętli to używaj jeszcze modyfikatora którego potem usuniesz [R=301,L]

no i przy tych ostatnich 3 linijkach to przekierowanie też jest trochu bez sensu gdyż powinno być w zasadzie to przekierowanie do tego samego adresu skoro nic nie może znaleść - czyli, np. do komunikatu, że dana strona nie istnieje...

i jeśli dalej nie masz przekierowań to w zasadzie z adresów pseudo statycznych powinno się przekierowywać do adresów php z parametrami get ;p

Ten post edytował zegarek84 7.07.2009, 14:31:08
Go to the top of the page
+Quote Post
.chudy.
post
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 3
Dołączył: 15.06.2003
Skąd: kosmosu?

Ostrzeżenie: (0%)
-----


Wielkie dzięki za pomoc i wytłumaczenie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 23:59