Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 'Przyjazne url-e' - problem.
Forum PHP.pl > Forum > PHP
MihaueQ
Witam wszystkich forumowiczów. Mam pewien mały (?) problem z "przyjaznymi url-ami". Mianowicie przeczytałem artykuł http://wortal.php.pl/wortal/artykuly/pomys.../przyjazne_urle , bardzo fajne rozwiązanie, ale posiada jedną wadę.

Wpadłem na patent, prawie całkowitego (bez indexa) pozbycia się plików php w public_html. Chodzi o to, że plik index.php includuje "głowny engine", ten znowu robi właśnie taką tablice PATCH_INFO, która trafia do switchowej "maszynki" i generowana zostaje odpowiednia strona. Wszystko pięknie ładnie gdyby nie jeden problem. Gdy chcę np. przeglądać profile użytkowników moim sposobem, czyli "www.mojastrona.pl/profile/212" wyskakuje mi 404, że nie ma takiego katalogu. Pewnie i słusznie, bo skąd apache może wiedzieć, ze chce się odwołać do "www.mojastrona.pl/index.php/profile/212".

Myślałem nad 2 rozwiązaniami. Tak jak to w artykule jest napisane. Porobić osobne pliki, index.php, profile.php i "usunać" .php przez .htaaccess. Ale to mnie nie satysfakcjonuje, bo wiem, że DA SIĘ zrobić to inaczej (np. tinyurl.com ma po adresie www.tinyurl.com/abcdef od razu "kod" odwołujący się do skróconego adresu, chyba nie tworzy tego katalogu?) pozatym takie rozwiązanie dalej jest złe bo z profile.php nadal musiał bym includowac główny engine i wszystko idzie się..

2 rozwiązanie, zostawić tak jak jest, ew zmienić index.php na coś krótszego np. a.php. Potem usunąć .php i przed każdym adresem dodawać www.mojastrona.pl/a/profile/2122. Też niefajne, ale działa.

Macie może jakieś inne propozycje? Bardzo proszę o pomoc i z góry dziękuję:)
pgrzelka
przekieruj każde wywołanie na index.php
w index.php daj
$tablica = explode('/', $_SERVER[REQUEST_URI]);

$tablica[0] - główny moduł / akcja
pozostałe rekordy tablicy to zmienne
MihaueQ
Cytat
w index.php daj
$tablica = explode('/', $_SERVER[REQUEST_URI]);

$tablica[0] - główny moduł / akcja
pozostałe rekordy tablicy to zmienne


To już mam zrobione z artykułu smile.gif

Zastanawiam się nad "przekieruj każde wywołanie na index.php". Może dało by się np. mod_rewrite'm przekierować wszystkie zapytania http z www.mojastrona.pl/profile/212 do www.mojastrona.pl/index.php/profile/212. Po prostu przekierowywac wszystko do PO /index.php/, ale zeby tego nie bylo widać. Da się? biggrin.gif
wookieb
Po co sie głupio pytasz skoro nawet nie przeczytałeś artykułu na temat mod_rewrite.
Tak da się "przepisać" wszystko. I było na forum więcej razy niż jesteś sobie w stanie wyobrazić.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.