![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie!
Pytanie nie tyczy się stricte php lecz mod_rewrite (a więc tematu pokrewnego). Krótko i rzeczowo mówiąc chcę aby po odwołaniu się do /agfx/plik.png mod_rewrite poszukał "plik.png" najpierw w /admin/custom_gfx/ a następnie jeśli go tam nie ma spróbował w /admin/default_gfx/, jeśli tam też go nie ma wypluł zwykłe 404 jakby nigdy nic ![]() Samo przepisanie linka to nie problem: Kod RewriteRule ^agfx/(.*)$ admin/default_gfx/$1 [QSA,L] Niestety nie mam pojęcia jak zrobić ową alternatywę ![]() Ten post edytował kiler129 23.02.2012, 01:53:28 -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Widzisz, serwer nie jest tobą, nie domyśli się że poszukiwana grafika jest albo w tym folderze, albo w tamtym. A jak będzie w obu, to jeszcze się domyśli że tobie nie chodzi o ten pierwszy katalog, tylko od ten drugi..
Takie rzeczy możesz lepiej rozwiązać w php, tzn w ogóle możesz. Cały ruch przekierowujesz na skrypt, a on już sobie katalogi przeszukuje. A do tego wystarczy prosty warunek czy plik istnieje. Nie jestem mistrzem w konfiguracji, ale na moje oko, to co chcesz osiągnąć, jest nie do osiągnięcia od strony htaccess. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Kierowanie elementów statycznych przez php to najgłupsze co można zrobić - za dużo straty na cpu i ramie.
Warunek tu jest prosty i wiem ze takie cos da sie osiągnąć samym rewrite tylko nie do końca wiem jak ![]() Edit: Jest jeden sposób ale bardzo brzydki, póki co nie mam pomysłu na jego poprawienie: Struktura Kod . |-- .htaccess |-- _custom | |-- .htaccess | `-- test1.html `-- _default |-- test1.html `-- test2.html .htaccess w głownym Kod RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^agfx/(.*)$ _custom/$1 [L] .htaccess w _custom Kod RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*)$ ../_default/$1 [L] Takim sposobem otrzymamy to co chcę: http://example.com/agfx/test1.html => _custom/test1.html http://example.com/agfx/test2.html => _default/test2.html http://example.com/agfx/test3.html => HTTP/404 Niemniej jednak to rozwiązanie jest nieco brzydkie, wolałbym uniknąć dwóch .htacces'ów i kombinowania z cofaniem się ![]() Ktoś ma jakiś pomysł? Ten post edytował kiler129 24.02.2012, 02:23:01 -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 14:22 |