![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 7 Dołączył: 16.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
witam,
Mam problem z uzyskaniem efektu przyjaznych urli na home.pl, do tej proy bazowalem na $_SERVER['PATH_INFO'] oraz ForceType application/x-httpd-php w .htaccess, przez co omijalem mod_rewrite. Niestety home.pl nie daje mozliwosci uzywania ForceType application/x-httpd-php (IMG:style_emoticons/default/sad.gif) Prosilbym o informacje czy sie da a jesli tak to jak mialby wygladac regula mod_rewrite do zamaskowania rozszerzenia .php w adresie url. Czyli zeby wpisanie np: http://domena.pl/sekcja/podsekcja1/.... podowowalo wczytanie danych z pliku sekcja.php |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 157 Pomógł: 32 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 7 Dołączył: 16.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
mam jednak ciagle problem, poniewaz potrzebuje troszku bardziej skomplikowanych regul mod_rewrite :/
Obecnie mod_rewrite wykorzystuje do przekierwania na katalog /public/: RewriteCond %{HTTP_HOST} ^(www\.)?domena\.pl$ [NC] RewriteCond %{REQUEST_FILENAME} !/public/ RewriteRule ^(.*)$ /public/$1 [L] Poniewaz jak pisalem wczesniej w home.pl nie mozna uzyc ForceType application/x-httpd-php, do nazw plikow stron bez rozszerzenia dodalem .php. Czyli teraz w kataogu /public/ posiadam np: dzial1.php, dzial2.php, ... Dodanie reguly: RewriteRule ^dzial1$ dzial1.php [L] dziala, lecz uniemozliwia mi w pelni poprawne dzialanie strony, poniewaz calosc bazuje o dane pobrane z $_SERVER['PATH_INFO'], a z wykorzystaniem takiej reguly domena.pl/dzial1/poddzial1/poddzial2 wyrzuca blad braku pliku. Do reguly dodalem RewriteRule ^dzial1[0-9a-zA-Z_/]*$ dzial.php [L] i teraz faktycznie po wpisaniu adresu domena.pl/dzial1/poddzial1/podzdzial2 w linku jest ok, nie ma bledu, lecz zmienna $_SERVER['PATH_INFO'] nie widzi tej czesci linku /poddzial1/poddzial2 (IMG:style_emoticons/default/sad.gif) Jakiej reguly (regul) uzyc zeby dzialalo to w calosci, uwzgledniajac takze przekierowanie na katalog /public/ a takze mozliwosc istnienia danych przeslanych przez get w "czystej" postaci czyli bez zamiany z uzyciem moda?(IMG:style_emoticons/default/questionmark.gif) ? Ten post edytował siemieng 6.09.2009, 14:39:27 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 7 Dołączył: 16.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze rozumie, ale rozwiazanie bazujace na jednym glownym pliku nie wchodzi w gre, poniewaz strona zbudowana jest w oparciu o rozne pliki stron, gdzie kazdy dzial glowny jest osobnym, fizycznym plikiem, dopiero poddzialy sa zmiennymi, np:
domena.pl/kontakt -> kontakt.php domena.pl/artykuly/najnowsze -> artykuly.php, dopiero "najnowsze" jest wartoscia url, nie jest tez zmienna obslugiwana przez get, jest poprostu wartoscia, ktora jest pobierana z $_SERVER['PATH_INFO'] I teraz wlasnie nie potrafie sobie sam poradzic ze stworzeniem regul mod_rewrite, ktore by adres typu: domena.pl/artykuly/najnowsze - tlumaczyly na domena.pl/artykuly.php/najnowsze, uwzgledniajac dodatkowo przekierowanie do katalogu /public/ w ktorym to sa pliki stron Ten post edytował siemieng 6.09.2009, 19:41:11 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Napisałem już raz, zalinkuję:
http://eriz.pcinside.pl/weblog/mod_rewrite...wiazac-208.html |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 7 Dołączył: 16.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
"erix" dzieki wielkie za linka, poczytalem, wykorzystuje opisane w artykule metody, lecz chyba czegos dalej nie moge do konca zrozumiec:/
W katalogu, na ktory wskazuje domena dodalem pierwszy plik .htaccess z regulami mod_rewrite przekierowujacymi do katalogu /public/ gdzie sa pliki stron:
Drugi plik .htaccess umiescilem w katalogu /public/, gdzie znajduja sie pliki stron (index.php, dzial1.php, dzial2.php ....). I teraz chcac doprowadzic link do postaci domena.pl/dzial1/poddzial1/poddzial2/.... gdzie "dzial1" jest fizycznym plkiem reszta to wartosci url, dodalem regule:
Samo wczytywanie stron z pominieciem ich rozszerzenia teraz niby smiga, lecz w skryptach php zmienna $_SERVER['PATH_INFO'] jest ciagle pusta:/ a jak pisalem wczesniej cala strona bazuje o dane pobrane z niej. I teraz nie wiem, czy PATH_INFO nie dzial z linkami przeksztalconymi przez mod_rewrite, czy ja cos zle robie. Usuniecie drugiego pliku .htaccess, tym samym doprowadzenie adresu do postaci domena.pl/dzial1.php/poddzial1/poddzial2/.... powoduje, ze PATH_INFO dziala ok:/ Prosze o pomoc, bo stracilem juz trochu czasu, ktoego akurat teraz nie mam:/ z gory dzieki:) |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Samo wczytywanie stron z pominieciem ich rozszerzenia teraz niby smiga, lecz w skryptach php zmienna $_SERVER['PATH_INFO'] jest ciagle pusta:/ To zależy od konfiguracji serwera; sprawdziłem przed chwilą na devie i u mnie tez nie ma tego klucza w $_SERVER ;] Spróbuj użyć innych kluczy z $_SERVER, np. REQUEST_URI, który IMHO będzie tu najlepszym wyjściem. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 18:33 |