Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przyjazne URLe [scanner]
Forum PHP.pl > Wortal > Artykuły
Stron: 1, 2, 3
scanner
Proszę o opinie i sugestie na temat artykułu "Przyjazne URLe" mojego autorstwa.

Pozwoliłem sobie poprawić link do artykułu
---
~mike_mech
eLPe
Gdzies widzialem ostatnio artykul na podobny temat ( nie wiem czy czasopismo czy internet ) w kazdym badz razie nie przebrnolem przez temat.
Twoj artykol krotki i zwiezly i jasno napisany tak jak powinno byc smile.gif
shima
Cytat
Proszę o opinie i sugestie na temat artykułu "Przyjazne URLe" mojego autorstwa.

Przyjaźnie napisane. Świetny pomysł, gdy piszemy od podstaw.
enceladus
Ja od siebie dodam że w "przyjaznych urlach" staram się stosować na końcu rozszerzenia - czytalem gdzieś w necie że niektóre roboty mogą trochę gorzej interpretować URL-e bez rozszerzeń.

Warto jeszcze dodać do tego artykułu metodę opartą na mod_rewrite apache-a.

Generalnie jestem 'na tak'
scanner
mod_rewrite zahaczałby za bardzo o konfiguracje apache'a i z porady zrobiłby sie artykuł. Pozatym nie znam tego modułu, a budowanie autorskiego tekstu na informacji skopiowanych z forum.. ee..
Dlatego właśnie wspomniałem na końcu arta o "Innych metodach" - może ktoś sie pokusi i napiszę "Przyjazne URLe i mod-rewrite" - jełśi tak, to wassago czeka na zgłoszenia.
eldad
Czy ktoś testował to rozwiązanie pod kątem wydajnościowym? Chyba jednak trochę kosztuje to zasobów - za każdym wywołaniem takiego urla, najpierw apache musi rozpoznać, że parsuje ten plik jako php, potem php wachluje tablicę...
Skusiłbym się, ale cały czas wstrzymuje mnie pytanie ile będzie to kosztować - mam dość obciążony serwis.

eldad
scanner
eZ publish wykorzystuje np. podobna metodę, co wydać na php.pl.
Z tego co widze, to nie wpływa to aż tak bardzoi na wydajność, ale obliczeń nie robiłem.
tahat
temat ciekawy i na czasie, z radoscia spostrzegam, ze coraz wiecej serwisow wykorzystuje przyjazne adresowanie podstron.

uwaga: w mozilli 1.6 kopie sie wyglad strony.
onlyX
Nie wiem czemu, ale na moim serwerze (KrasnalSERW) nie ma zanczenia czy wpisuję:
http://localhost/~url/index.php/przyjazne/URLe/
czy:
http://localhost/~url/index/przyjazne/URLe/
tomekb
Zapomniales dodac ze w Apache'u potrzebna do tego jest wlaczona obsluga MultiViews, w przeciwnym razie bedzie wyskakiwac 404.
scanner
Przyznaję, ze o kilku rzeczach nie napisałem, jednak moim celem było napisanie porady nie artykułu. Jeśli znajde trochę czasu, to uzupełnię materiały zarówno o niezbędną konfiguracje serwera www (sprawdzałem na domyślnie zainstalowąnym Apache-u na Windows i Slackware) oraz dodam rozdział o mod_rewrite i wtedy publikacja zostanie przeniesiona z porad do artykułów smile.gif
Dziękuję za konstruktywne uwagi.
Remiq
Jak się zachowa jeśli będzie np. http://domena.pl/firma/pomoc/jak_napisac/
i instnieje katalog "pomoc" ?
Oczywiście z uwzględnieniem że napisaliśmy że ma traktować pliki jako .php
Bieniasxyz
Jak dla mnie text dosyć ciekawy i pouczający :wink:
sobstel
wwarto tez wspomniec, ze przy tym sposobie lepiej jest stosowac adreseowanie bezwzgledne (np. do obrazkow czy arkusza styli)... - wlasnie testowalem ;-)
Chutch
Świetny, rzeczowy artykuł, pozytywnie mnie zaskoczył. Pisz więcej ciekawych rzeczy, dobrze Ci to wychodzi :-) Nawet cały całokształt wygląda ciekawie. A najważniejsze - dobrze się czyta, nie jest takie "suche" jak wiekszość informatycznych textów...
hawk
Cytat
wwarto tez wspomniec, ze przy tym sposobie lepiej jest stosowac adreseowanie bezwzgledne (np. do obrazkow czy arkusza styli)... - wlasnie testowalem ;-)

Nope. Adresowanie bezwzględne jest obchodzeniem sprawy naokoło. Znacznie lepiej jest dać w wynikowym HTMlu znacznik <base>.
AcidBurnt
a co zrobic gdy chce jeszcze dodatkowo przekazac ladnie zmienne z formulaza?

wtedy sie chyba Ładnu url sypnie bo formul;az sam mi na koncu doda ? i & questionmark.gif! cio? da sie to jakos obejsc
wassago
dane z formularza wysylasz metoda POST, tak nie dopisujesz nic do url'a.
AcidBurnt
Cytat
Zapomniales dodac ze w Apache'u potrzebna do tego jest wlaczona obsluga MultiViews, w przeciwnym razie bedzie wyskakiwac 404.
,

no i wlasnie ja mam ten problemik...

w apachu znalazlem tylko cos takiego

Options Indexes FollowSymLinks MultiViews

i teraz nie wiem co zronic z tym aby to działało


p.s. moze to byc roznica przez to ze serwer mam na windowsie??

p.s.s a co zrobic w przypadku jak serwer dodaje autpomatycznie SESSION_ID questionmark.gif
Maslav

http://fabrykadrobiu.com/php.gif
FireFox 0.8
AcidBurnt
da sie jakos znusic przyjazne urrele do dzialanie pod serwerm na windozie/??

bo jest problem z tworzeniem alplikacji... bo na serwerze gdzie mam strone jest ladnie srodowisko unixowe i urele dzialaja niesteyt nie mam jak testowac rozwiazan poniewarz nie dzialaja one u mnie na windozie ;/

ma ktos jakas rade na to?

bo nawet cos takiego

index.php/asd/asd/asd

wywala brak dokumentu na windze...
Wankster
ja mam tak i ładnie działa wszystko smile.gif
Kod
<Directory "Moja:ŚcieżkaDoApache2htdocs">

    Options Indexes FollowSymLinks

    AllowOverride All

    Order allow,deny

    Allow from all

</Directory>
A i jeszcze
Kod
<Directory />

    Options FollowSymLinks

    AllowOverride All

</Directory>
AcidBurnt
a wiecie moze jak sobie przy tych urlach poradzic z dodawaniem przez php gdzieniegdzie SESSION_ID?

bo nie wiem czmeu czasmi sie pojawia w skryptach czasmi nie i nie wiem do czego to zalezy
FastRed
Napotkałem na pewien błąd przy korzystaniu z tej metody.
Wykorzystując znacznik base odnoszący się do ścieżki w której znajduje się skrypt, podajemy wartość np. http://127.0.0.1/strona/index/ (gdzie index to nazwa naszego pliku), jeśli ta wartość będzie zakończona slashem to skrypt wykona się tak jakby dwa razy:
[php:1:3df300cc55]<?php
session_start();
echo $_SESSION['licznik']++;
?>[/php:1:3df300cc55]
będzie zwracać wartości za każdym razem o 2 większe.

Po usunięciu końcowego slasha ze znacznika base sytuacja wraca do normy.
Wie ktoś może co z tym fantem zrobić? smile.gif
maliniak
a jak ma się sprawa w przypadku konfiguracji php nie jako "mod" tylko jako cgi i w dodatku via wrapper?
kalinowski
a co jesli chce zrobic tyak :
Kod
www.strona.pl/zmienna/

zeby nie wpisywac juz tego index.php ?
Puciek
Prosty, treściwy i jasny smile.gif
cyberdex
Ok faja idea tych urli, ale czy na pewno sa one bezpieczne? Dokladnie mysle o tym czy ich działania jest prawidłowe.
Akurat to co napisal wyzej FastRed u mnie nie dziala w ten sposob, ale mam inny bardzo dziwny problem, o taki skrypt:

Kod
<?
session_start();

++$_SESSION[i];
echo $_SESSION[i];
?>

<link href="style.css" rel="stylesheet" type="text/css">


A wywołuje go localhost/plik.php/opcje, przy wywolaniu localhost/plik.php jest ok.

Jest on wykonywany podwójnie, co ma duze znaczenie przy chocby dodawaniu nowego wpisu do bazy:
Kod
mysql_query("INSERT INTO wiesci (tekst) VALUES ('aa') ");


Właśnie przy czymś takim znalazłem ten błąd u siebie, jak się podwójne newsy zaczęły pokazywać.
Teraz mała zmiana:

Kod
<?
session_start();

++$_SESSION[i];
echo $_SESSION[i];
?>


i działa już ok

No i jak przy takim błędzie system sie wywala to jest co najmniej dziwne. I denerwujące. A sens korzystania z przyjaznych URLi stoi pod znakiem zapytania.

Dodam, że mam Apache/1.3.27, php Version 4.2.2
na serwerze postawionym na FreeBSD to samo, Apache i php w podobnych wersjach.

Czy ktoś już spotkał się z czymś takim, jakiś komentarz?

Pozdrawiam


Rozwiązałem problem, 2 linki z logów Apache'a wystarczą:
Kod
localhost - - [28/Jun/2004:15:02:52 +0200] "GET /test.php/das/ HTTP/1.1" 200 74
localhost - - [28/Jun/2004:15:02:52 +0200] "GET /test.php/das/style.css HTTP/1.1" 200 74


PS Patrze słaby ruch na tym forum....
GeoS
Pragne tylko dodac, ze do wlasciwego dzialania calosci wymagane jest uruchomienie php jako modulu Apache, bo w trybie CGI nie dziala.

Tylko tego zabraklo do pelni szczescia w tym "poradniku".

mod_rewrite jest dosc ambitnym tematem i mozna na jego temat napisac dosc duzy artykul.
Zachecam do zglebiania drzemiacych w nim mozliwosci (tak jak i mod_setenvif i kolejnych).
scanner
Po weekendzie uzupełnię w końcu art i wszystkie zauważone przez Was braki.
Prawdopodobnie uda mi się dokonczyć pewną małą klasę (w tym temacie), która może się niejednemu przyda.
GrayHat
Cytat(kalinowski @ 2004-06-08 13:54:59)
a co jesli chce zrobic tyak :
Kod
www.strona.pl/zmienna/

zeby nie wpisywac juz tego index.php ?

mam ten sam problem... moze ktos wie jak to rozwiazac?
GrayHat
a oprocz mod_rewrite...
rzseattle
Cytat(GrayHat @ 2004-08-06 20:34:15)
a oprocz mod_rewrite...

Nie da sie. Nie z powodu skryptu ale z powodu samego servera, ktory uzna taki adres za probe wejscia do katalogu lub otwarcia pliku ktorego nie ma.
microw
Bardzo podoba mi sie ten artykul bardzo przydatny
Dabroz
Cytat(rzseattle @ 2004-08-07 21:37:56)
Cytat(GrayHat @ 2004-08-06 20:34:15)
a oprocz mod_rewrite...

Nie da sie. Nie z powodu skryptu ale z powodu samego servera, ktory uzna taki adres za probe wejscia do katalogu lub otwarcia pliku ktorego nie ma.

Można tak: robimy skrypt php który obsługuje przyjazne URL'e, nazywamy go na przyklad engine, a pod domene podpinamy to tak:

www.domena.pl --> /user/web/public_html/engine/

testowane i działa smile.gif
Drake
Muszę przyzanć, że to dość ciekawy sposób na wyszukiwarki, ale niestety nie skorzystam, ponieważ nie chce mi się zmieniać struktury katalogowej... a nieco tego tam mam. Jak będzie mi się konkretnie nudziło, to zrobię kopię witryny i sprobuje co nie co zmodyfikować.

Pozdrawiam. snitch.gif
zYm3N
Stronka nadal wygląda fatalnie.. w firefoxie..

Da się naprawić ?
Seth
Tego typu pytania prosze kierowac na forum "Opinie o wortalu"

Ale skoro juz tutaj zadales je to: wortal w krotce zostanie calkowicie zmieniony, dlatego nasze wysilki po wakacjach beda sie skupialy tylko na nowym php.pl, a obecny bedzie jedynie aktualizowany merytorycznie.
Dlatego poki co polecam poczytac ten art w wersji PDF
Leezard
a jakas metoda zeby kolejnosc argumentow w URL'u nie grala roli jest?
Bakus
Leezard: nie... zawsze musi istnieć jakaś systematyka, bo w końcu jak ma to skrypt odczytać...

GrayHat: kalinowski: Da się to rozwiązać w trochę inny sposób (bez mod_rewrite)...
Tworzymy plik "home", i wypełniamy go kodem php odpowiedzialnym za parsowanie miłych URLi...
W pliku .htaccess wpisujemy:
Kod
<Files /home>
ForceType application/x-httpd-php
</Files>


Takie coś działało u mnie rzez długi czas do wyświetlania źródeł plików...
Przykład adresu: http://www.example.com/sources/dta1/informations.php
co powodowało wczytanie pliku "/dta1/informations.php" przez skrypt "sources", który ten plik kolorował... proste, ale skuteczne
ky3orr
witam!
bardzo ciekawy artykul smile.gif
jestem poczatkujacym i wlasciwie dobrze ze przeczytalem Twoj tekst [scanner].
mam jednak problem, pomimo zmiany ustawien Apahe'a jak podano w ktowyms z watkow rozmowy po podaniu adresu http://url/index.php/wartosc1/wartosc2/wartosc3 wywala mi error 500, wewnetrzny blad serwera.
Apacz stoi na windzie z pakietu phptriad.
nie wiem co sie dzieje i musze poki co nawigacje wykonac na parametrach $_GET.

gdy zrobie sobie index.php w ktorym mam tylko echo $_SERVER['PATH_INFO'] to wypisuje mi /index.php, jesli wywolam (..)index.php/w1/w2/w3 to znow error 500 sad.gif

czego moze to byc przyczyna?

pozdro4all
blitz
Cytat(ky3orr @ 2004-10-26 08:27:16)
witam!
bardzo ciekawy artykul smile.gif
jestem poczatkujacym i wlasciwie dobrze ze przeczytalem Twoj tekst [scanner].
mam jednak problem, pomimo zmiany ustawien Apahe'a jak podano w ktowyms z watkow rozmowy po podaniu adresu http://url/index.php/wartosc1/wartosc2/wartosc3 wywala mi error 500, wewnetrzny blad serwera.
Apacz stoi na windzie z pakietu phptriad.
nie wiem co sie dzieje i musze poki co nawigacje wykonac na parametrach $_GET.

gdy zrobie sobie index.php w ktorym mam tylko echo $_SERVER['PATH_INFO'] to wypisuje mi /index.php, jesli wywolam (..)index.php/w1/w2/w3 to znow error 500 sad.gif

czego moze to byc przyczyna?

pozdro4all

Musisz pogadac z adminem aby odpalil Ci obsluge takich plikow (.htaccess)
u mnie bylo to samo, az napisalem i po chwili zamiast bledu "500" wszystko dzialalo cacy.
strife
Pierwszy raz się z tym spotkałem i napewno skorzystam, co do art'a jest spoko zrozumiale napisany... Gratuluje!
Reinmar
Mi się artykuł bardzo podobał.... A właściwie to porada. Bardzo zwięzła, łatwa do przeczytania i oby takich więcej smile.gif Naprawdę ułatwiają wyszukiwanie jakichś informacji winksmiley.jpg
Seth
Jak wyglada sprawa z url'ami z MOD_Rewrite kiedy musimy przekazac ID sesji w adresie ?

A dokladniej kiedy to ID jest automatycznie doklejane do adresu.
Ozzy
Seth: wiem, że to nie jest to co dokładnie chciałbyś wiedzieć, ale powiem Ci jak radzę sobie z przekazywaniem id.
Używam funkcji do generowania linków wewnątrz strony, która dodaje id automatycznie jeśli jest potrzebny
(Nie jesteśmy pewni, czy cookies są włączone, tyle że sprawdzenie tego odbywa się gdzie indziej,
a funkcja, właściwie metoda, sprawdza, tylko czy ma dodać indentyfikator).
Dla przykładu link może wyglądać w następujący sposób:
Kod
http://localhost/monstrum/public_html/pl/home/uid/cd7c1bd19c17f3c4f620b8901dc6cbc4/

Gdy uid nie jest przekazywany jest to po prostu
Kod
http://localhost/monstrum/public_html/pl/home/

Dzięki generowaniu linków za pomocą funkcji strona nie jest uzależniona od formy przekazywania zmiennych (nie ważne czy będzie to /test/2, czy /test_2/, czy nawet ?test=2 (mod_rewrite wyłączone))
Seth
Czyli jednym slowem lepiej nie korzystac z wbudowanych mechanizmow sesji w php przy rewrite'cie winksmiley.jpg
Ozzy
Dokładnie. Najlepszy jest własny mechanizm, takowy właśnie posiadam i stwierdzam, że jest to o wiele lepsze rozwiązanie od sesji wbudowanych w php, czy nawet session_handlerów. Służę kodem w razie potrzeby/ciekawości.
bregovic
Ozzy, właśnie zabieram się do napisania session handlera, i z chęcią zobaczyłbym twoje rozwiązanie, jeśli można smile.gif
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-2024 Invision Power Services, Inc.