![]() |
![]() |
![]() ![]()
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] |
|
|
![]() |
![]()
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 |
|
|
![]()
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)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 23:59 |