Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mod_rewrite] Dwa katalogi do poszukiwania plików
kiler129
post
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 (IMG:style_emoticons/default/wink.gif)
Samo przepisanie linka to nie problem:
Kod
RewriteRule ^agfx/(.*)$ admin/default_gfx/$1 [QSA,L]

Niestety nie mam pojęcia jak zrobić ową alternatywę (IMG:style_emoticons/default/closedeyes.gif)

Ten post edytował kiler129 23.02.2012, 01:53:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kiler129
post
Post #2





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 (IMG:style_emoticons/default/wink.gif)

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ę (IMG:style_emoticons/default/dry.gif)
Ktoś ma jakiś pomysł?

Ten post edytował kiler129 24.02.2012, 02:23:01
Go to the top of the page
+Quote Post

Posty w temacie


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: 2.10.2025 - 18:45