Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [htaccess][zf]Wykluczenie z przekierowania jednego requesta
Forum PHP.pl > Forum > Serwery WWW > Apache
batman
Mam problem z domyślnym htaccess-em ZF. Wygląda on tak:
[APACHE] pobierz, plaintext
  1. Order allow,deny
  2. Allow from all
  3.  
  4. RewriteEngine On
  5.  
  6. RewriteCond %{REQUEST_FILENAME} -s [OR]
  7. RewriteCond %{REQUEST_FILENAME} -l [OR]
  8. RewriteCond %{REQUEST_FILENAME} -d
  9. RewriteRule ^.*$ - [NC,L]
  10. RewriteRule ^.*$ index.php [NC,L]
[APACHE] pobierz, plaintext


Do tego muszę dodać regułkę, która przepuści request abc. Czyli dla wszystkich requestów (np www.adres.pl/index/index) htaccess przekierowuje je na index.php, a w przypadku www.adres.pl/abc htaccess nic nie robi - innymi słowy zachowuje się tak, jakby go nie było.

Kombinowałem na wiele sposobów, jednak jedyne co udało mi się uzyskać, to to, że przestały dołączać się pliki css/js/obrazki.
erix
Spróbuj na podobnej zasadzie: http://forum.php.pl/index.php?s=&showt...st&p=665107
batman
Niestety nie jest to takie proste. Samą regułę wiem jak napisać. Nie wiem jak ją połączyć z pozostałymi. No i najzabawniejszą rzeczą w tym wszystkim jest to, że www.adres.pl/abc nie istnieje. Nie jest to ani katalog, ani plik. To żądanie powinno zwrócić 404, a w chwili obecnej obsługiwane jest przez ZF. Mogę modyfikować jedynie .htaccess.
erix
Cytat
Kombinowałem na wiele sposobów, jednak jedyne co udało mi się uzyskać, to to, że przestały dołączać się pliki css/js/obrazki.

A jak wywaliłeś te RewriteCond, to abc przechodziło?

Pozostaje jeszcze kwestia typu konfiguracji serwera - jeśli masz taką możliwość, spróbuj przetestować aplikację na serwerze innym niż produkcyjnym. Nie pamiętam, jaka była kolejność przetwarzania, ale można by było jeszcze za tę sytuację winić mod_alias i zdefiniowaną regułę w plikach konfiguracyjnych (np. mój hosting robi tak, że usługi zarządzające są przekierowywane do wspólnego katalogu właśnie przez aliasowanie).

Ze zrozumiałych względów mówisz abc, dlatego mogę jedynie przypuszczać. winksmiley.jpg
batman
Po usunięciu wszystkiego, reguła działa poprawnie. Jutro sprawdzę jak to działa na maszynie testowej, a potem na lokalnej.

Cytat
Ze zrozumiałych względów mówisz abc, dlatego mogę jedynie przypuszczać. winksmiley.jpg
Nie zostałem upoważniony do udzielania takich informacji winksmiley.jpg

edit
Na maszynce lokalnej działa takie coś:
[APACHE] pobierz, plaintext
  1. RewriteCond %{REQUEST_URI} ^/abc$ [OR]
  2. RewriteCond %{REQUEST_FILENAME} -s [OR]
  3. RewriteCond %{REQUEST_FILENAME} -l [OR]
  4. RewriteCond %{REQUEST_FILENAME} -d
  5. RewriteRule ^.*$ - [NC,L]
  6. RewriteRule ^.*$ index.php [NC,L]
[APACHE] pobierz, plaintext
Jestem prawie pewien, że tak samo kombinowałem na maszynie produkcyjnej. Sprawdzę w poniedziałek.



edit 2
Zrobiłem kilka testów i jestem bardziej skołowany niż przed testami. Na jednej maszynie lokalnej działa (WAMP), na drugiej nie (XAMPP). Na serwerze produkcyjnym też nie działa.

Macie jakieś pomysły/sugestie?


edit3
Tajemnica się rozwiązała. Okazało się, że na niedziałających maszynach ustawiony był ErrorDocument 404 na index.php, a co za tym idzie, request był cały czas obsługiwany przez ZF.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.