![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Jak za pomocą Mod_rewrite zrobić że jeśli ktoś wywoła stronę używając do tego np. takiego adresu http://moja_strona.pl/coś/index.php?id=1 i tam gdzie jest to coś to mogło by być cokolwiek innego bez dodawania kolejnej reguły do htaccess, ale tak żeby to działało tylko do plików np. php, inc, fnc. Pliki były by w głównym katalogu i to do nich by odnosiło a odpowiedni skrypt w PHP przeparsował by url i jeśli istnieje zawartość dla wirtualnego katalogu "coś" to by ją wyświetliło. Ten post edytował patryk9200 15.09.2009, 21:53:48 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Jak za pomocą Mod_rewrite zrobić że jeśli ktoś wywoła stronę używając do tego np. takiego adresu http://moja_strona.pl/coś/index.php?id=1 i tam gdzie jest to coś to mogło by być cokolwiek innego bez dodawania kolejnej reguły do htaccess, ale tak żeby to działało tylko do plików np. php, inc, fnc. Ktoś coś na coś. A teraz napisz po polsku. I przeczytaj najpierw: http://eriz.pcinside.pl/weblog/mod_rewrite...ac-208.html#t71 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 333 Pomógł: 16 Dołączył: 13.05.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Pomocne. Skorzystam również z poradnika. (IMG:style_emoticons/default/party.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
Może jeszcze raz wyjaśnię bo namieszałem.
Mam stronę http://moja.pl/ . Zbudowałem jeden skrypt i chcę go wykorzystać również w wirtualnych katalogach. Bezpośrednie wpisanie takiego wirtualnego podkatalogu do .htaccess odpada, chociaż by dlatego że takie katalogi są tworzone przez PHP. Tzn. ktoś chce dodać nowy dział na stronę np. "sekretariat" to wtedy zapisuję do bazy danych, że taki dział powstał i teraz chcę aby do takich działów można było wchodzić tak: http://moja.pl/nazwa dzialu/ . Potem PHP odczytuje z jakiego podkatalogu dostano się na stronę i sprawdza czy taki podkatalog jest zarejestrowany w bazie, jeśli tak to wyświetla odpowiednią zawartość. mam taki problem, że nie mogło by to działać do prawdziwych podkatalogów tak żeby np. grafikę można było pobierać. Jest też taki problem, że musza działać dane przesłane metodą $_GET. Próbowałem sam zrobić ale nic nie wyszło próbowałem też wykorzystać ErrorDocument 404 ale nie interpretuje tego co jest po " / ". |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ok, spytam inaczej - jakieś tutoriale o mod_rewrite czytałeś?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Pokaż jak próbujesz.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jak próbujesz. np. tak: Options FollowSymLinks RewriteEngine On # dla błędu 404 nie znaleziono pliku ErrorDocument 404 /new/{REQUEST_URI} jak nie działa to robię na nowo więc poprzednich za bardzo nie pokaże... można to jakoś z rewrite rule połączyć? albo zastąpić? Ten post edytował patryk9200 16.09.2009, 20:33:24 |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
ErrorDocument nie ma nic wspólnego z mod_rewrite. Z tego, co pamiętam, to ED musi być plikiem statycznym.
Cytat można to jakoś z rewrite rule połączyć? albo zastąpić? Właśnie dlatego pytałem o tutoriale. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
ja mam też coś takiego:
# dla błędu 500 wewnętrzny błąd serwera ErrorDocument 500 /new/index.php?error=500 # dla błędu 401 wymagana autoryzacja ErrorDocument 401 /new/index.php?error=401 # dla błędu 403 dostęp zabroniony ErrorDocument 403 /new/index.php?error=403 # dla błędu 400 niepoprawne żądanie ErrorDocument 400 /new/index.php?error=400 i działa znakomicie, jeśli chodzi o mod_rewrite tez coś tam naskrobać próbowałem ale nic nie wyszło |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 1 Dołączył: 22.04.2007 Skąd: Mówią, że Matrix Ostrzeżenie: (0%) ![]() ![]() |
Jezeli wszystko masz po stronie PHP to zrób router w PHPie i działaj na nim... bo z tego co piszesz wynika, że wszystko jest wirtualne a coś jest z czymś - odnośnie routerów PHP znajdziesz informacje i gotowe pliki na tym forum. Nic tylko szukać....
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
Jezeli wszystko masz po stronie PHP to zrób router w PHPie i działaj na nim... bo z tego co piszesz wynika, że wszystko jest wirtualne a coś jest z czymś - odnośnie routerów PHP znajdziesz informacje i gotowe pliki na tym forum. Nic tylko szukać.... a na jakiej zasadzie to działa? bo nie może przekierowywać, a czy tablice POST i GET też przekazuje? znalazłem wiele routerów w PHP ale żaden nie odpowiada moim wymaganiom jedyne co potzebuje to żeby przekazywał tablice i otwierał plik wybrany w ścieżce.... resztę mam zrobioną. powiedzmy, że w .htaccess będę miał: # dla błędu 404 nie znaleziono pliku ErrorDocument 404 /new/router.php # dla błędu 500 wewnętrzny błąd serwera ErrorDocument 500 /new/index.php?error=500 # dla błędu 401 wymagana autoryzacja ErrorDocument 401 /new/index.php?error=401 # dla błędu 403 dostęp zabroniony ErrorDocument 403 /new/index.php?error=403 # dla błędu 400 niepoprawne żądanie ErrorDocument 400 /new/index.php?error=400 skoro tak nie szło przekazać tablicy post to jak to w routerze zrobie? |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat a na jakiej zasadzie to działa? bo nie może przekierowywać, a czy tablice POST i GET też przekazuje? znalazłem wiele routerów w PHP ale żaden nie odpowiada moim wymaganiom To znaczy? Nie zapętlaj się, opisz szczegółowo te wymagania. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
To znaczy? Nie zapętlaj się, opisz szczegółowo te wymagania. sorry, że tak puźno odpowiadam ale mnie w kraju nie było;-) Jeśli chodzi o wymagania to muszę zrobić coś takiego, że chcę dać możliwość tworzenia własnych stron wykorzystując tylko 1 system CMS prze zemnie pisany który pozwalał by wyświetlić zawartość zależną od wirtualnego katalogu użytego do wejścia na stronę. Czyli mam np. kilku użytkowników którzy zakładają sobie strony dodając dane o ich konfiguracji do bazy. Powiedzmy, ze mam użytkowników a,b,c i teraz chcę aby każdy mógł wejść na swoją stronę używając takiego adresu: http://mojastrona.pl/a/, http://mojastrona.pl/b/, http://mojastrona.pl/c/, tylko, że te dane nie mogą być zapisywane w htaccess. Identyfikacja strony polegała by na sprawdzeniu czy strona o podanym adresie istnieje i jeśli tak wyswietli tą stronę, jeśli nie to wyświetli stronę błędu. Chodzi mi tylko o stworzenie routera który przekazywał by dane przesłane z dowolnego wirtualnego adresu do głównego CMS'a z tym, że musiałby uwzględniać również wywołane skrypty tzn. jeśli bym miał np. http://mojastrona.pl/a/user.php?id=1 to żeby zadziałało jak wywołanie po prostu http://mojastrona.pl/user.php?id=1. ujmę to jeszcze jaśniej.... chodzi mi o przekierowanie zapytania do głównego katalogu a nie do wirtualnych użytych w adresie. jak zrobić dyrektywę w htaccess która zrobi coś takiego: RewriteEngine on RewriteRule ^$zmienna1/$zmienna2?$ $zmienna2 [L] tzn. pobierze adres, wirtualny katalog to $zmienna1, zapytanie to $zmienna2 i jak zrobić żeby do zapytanie kierowała do głównego katalogu a nie wirtualnego? $zmienna1 będzie zbudowana tylko z liter i cyfr natomiast $zmienna2 z tego wszystkiego co mogą mieć w sobie dane przesyłane metodą GET. jeszcze mi wpadło, że może w htaccess da się odcinać ścieżki katalogów? i może można by było to kierować do głównego? zrobiłem coś takiego: RewriteRule ^(.*)$ http://zs4.tychy.edu.pl/new/%{REQUEST_FILE...%{QUERY_STRING} [L] i gdy wpiszę np.http://zs4.tychy.edu.pl/new/w/test.php?wp=r to przekierowuje mnie pod taki adres: http://zs4.tychy.edu.pl/new//home/zs4tychy/ftp/new/home?wp=r jak zrobić żeby adres końcowy wyglądał tak: http://zs4.tychy.edu.pl/new/test.php?wp=r o coś takiego mi chodzi tylko nie wiem jak zrobić żeby to nie było w formie przekierowania, żeby adres pozostawał pierwotny... dobra już sobie poradziłem z tym. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 18:22 |