![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Wyobraźmy sobie sytuację że mamy stronę opartą o skrypt index.php na który są kierowane wszystkie wywołania poprzez plik ".htaccess".
przykładowy plik htaccess który to powoduje :
Niezależnie jaki adres zostanie wywołany to za każdym razem wykonany zostanie plik index.php Załóżmy teraz że obok pliku "index.php" i pliku ".htaccess" tworzymy katalog "media" do którego będziemy chcieli się odwoływać (gdzie będą znajdować się obrazki, style, skrypty java script i inne rzeczy potrzebne przy wizualizacji strony). (załóżmy że w katalogu media mamy pliki obrazek1.jpg obrazek2.jpg styl1.css skrypt1.js) Mam teraz zasadnicze pytanie : jak zrobić żeby po wpisaniu np. adresu odnoszącego się do obrazek1.jpg został on zwrócony ?
Można to zrealizować za pomocą dodatkowego wpisu w pliku ".htaccess" : RewriteRule ^media/(.*)$ media/$1 [L] lecz chciałbym tego uniknąć. Strasznie łatwo coś z pliku "htaccess" zepsuć i bardzo łatwo błąd 500 można otrzymać. Czy ktoś ma jakiś pomysł bądź jakieś swoje sprawdzone rozwiązanie ma opatentowane w tym przypadku ? @edit - meritum chodzi o funkcję czy taka istnieje że : jej parametrem jest ścieżka do pliku efektem jest : wyświetlenie zawartości tego pliku w przeglądarce tak jak gdyby został on bezpośrednio w pasku adresu wywołany. Ten post edytował szagi3891 6.07.2008, 10:14:36 -------------------- Każdy z was jest łodzią w której Może się z potopem mierzyć Cało wyjść z burzowej chmury Musi tylko w to uwierzyć! |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 12 Dołączył: 27.01.2007 Skąd: north Poziom: 158 Tytuł: Miszcz Ostrzeżenie: (0%) ![]() ![]() |
Wyrzuć odpowiednie headery dla odpowiedniego typu obrazka oraz taki myk:
I powinno wyświetlić Ci ten obrazek. Choć osobiście bym polecał Ci zrobić wykluczenia w htaccess dla tegoż folderu. Dla innych plików podobnie, tylko uważaj na zabezpieczenia bo w tym tkwić może luka. Kwestia tylko rozpoznania końcówki adresu w przeglądarce. ;] Ten post edytował carbolymer 6.07.2008, 13:03:38 -------------------- Blog | plugin system by carbolymer
Residence: #php.pl @ IRCNet "Pralki powstały po to, aby kobiety też mogły programować" |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Kod RewriteEngine On
RewriteRule ^$ / [QSA] RewriteCond %{REQUEST_FILENAME} !-f << jesli plik NIE istnieje na dysku to przekieruj wywoalnie na indeks RewriteRule ^(.*)$ index.php/$1 [QSA,L] -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Nie chciał bym korzystać z funkcji php która wczytuje plik. Wolał bym aby php przerzucało to zadanie na apache. Chodzi mi bardziej czy jest jakiś interfejs api za pomocą którego skrypt php mógłby powiedzieć serwerowi apache :
słuchaj Ty no apachu, to żądanie co prawda mi przekierowałeś (mówi skrypt) lecz moim życzeniem jest abyś w ramach tego zadania udostępnił plik /media/xxx.jpg gdyż ten użytkownik poprawnie przeszedł proces autoryzacji (sprawdzenie session_id itp ...) Z tego co wygrzebałem do tej pory w jakimś stopniu można by spróbować zastosować : http://httpd.apache.org/docs/1.3/mod/mod_r...html#RewriteMap Bądź funkcję : http://pl.php.net/manual/pl/function.virtual.php O ile mapa nie spełnia wszystkich moich oczekiwań to w ostateczności pewnie zastosuje to rozwiązanie. Natomiast funkcja virtual nie chce działać na serwerach nazwy oraz innym jeszcze serwerze. Czy ktoś na coś takiego ma pomysł ? -------------------- Każdy z was jest łodzią w której Może się z potopem mierzyć Cało wyjść z burzowej chmury Musi tylko w to uwierzyć! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
@szagi3891: czytales moj post? sprawdzales jak to dziala?
![]() -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Widzę. Jak plik nie istnieje to kieruje wywołanie na index.
Ale mi chodzi o coś trochę innego. O to aby php sam mógł decydować że oddaje sterowanie apachowi który ma coś udostępnić. Obczajasz ? ![]() -------------------- Każdy z was jest łodzią w której Może się z potopem mierzyć Cało wyjść z burzowej chmury Musi tylko w to uwierzyć! |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 12 Dołączył: 27.01.2007 Skąd: north Poziom: 158 Tytuł: Miszcz Ostrzeżenie: (0%) ![]() ![]() |
Musisz zrobić jakąś klauzulę w .htaccess, dzięki której przekierowanie z bootstrapa do jakiegoś pliku nie trafi do spowrotem niego. Bo problem wygląda następująco:
* Apacz dostaje req * Prasuje .htaccess * .htaccess przekierowuje do bootstrapa * bootstrap mówi że ma ten plik w dupie i przekazuje to do apacza ( przychodzi mi do głowy tylko header() ) * apacz dostaje zapytanie * apache parsuje .htaccess (i jeżeli chcesz uniknąć zapętlenia musisz tu umieścić klauzulę w req, jakąś którą rozpozna .htaccess i nie pozwoli na zapętlenie) * htaccess widzi klauzulę i przekierowuje do pliku... Ja to tak rozumiem. -------------------- Blog | plugin system by carbolymer
Residence: #php.pl @ IRCNet "Pralki powstały po to, aby kobiety też mogły programować" |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Cytat(carbolymer) * .htaccess przekierowuje do bootstrapa * bootstrap mówi że ma ten plik w dupie i przekazuje to do apacza ( przychodzi mi do głowy tylko header() ) * apacz dostaje zapytanie * apache parsuje .htaccess (i jeżeli chcesz uniknąć zapętlenia musisz tu umieścić klauzulę w req, jakąś którą rozpozna .htaccess i nie pozwoli na zapętlenie) * htaccess widzi klauzulę i przekierowuje do pliku... Właśnie o coś takiego w zarysie mi chodzi. Tylko nie wiem jeszcze jak to wykonać :/ -------------------- Każdy z was jest łodzią w której Może się z potopem mierzyć Cało wyjść z burzowej chmury Musi tylko w to uwierzyć! |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Hmmm, dodac w php do URL'a "/cos" na poczatku i dac redirecta.
Potem w htaccess dla URLi z /cos na poczatku: - wycinasz /cos - normalnie dajesz plik [img, js], zamiast przekierowac do index.php -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Nie chodzi mi o kombinowanie z adresami. Adres ma pozostać ten sam. Dobrze by było że zamiast żądania php ma nakazać apachowi udostępnić jakiś plik.
-------------------- Każdy z was jest łodzią w której Może się z potopem mierzyć Cało wyjść z burzowej chmury Musi tylko w to uwierzyć! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:09 |