Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Artykuły _ Przyjazne URLe [scanner]

Napisany przez: scanner 30.03.2004, 07:35:05

Proszę o opinie i sugestie na temat artykułu "http://php.pl/index.php/phppl/artyku_y/pomys_y_porady_i_sugestie/przyjazne_urle" mojego autorstwa.

Pozwoliłem sobie poprawić link do artykułu
---
~mike_mech

Napisany przez: eLPe 30.03.2004, 09:16:08

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

Napisany przez: shima 30.03.2004, 09:47:16

Cytat
Proszę o opinie i sugestie na temat artykułu "http://php.pl/index.php/phppl/artyku_y/pomys_y_porady_i_sugestie/przyjazne_urle" mojego autorstwa.

Przyjaźnie napisane. Świetny pomysł, gdy piszemy od podstaw.

Napisany przez: enceladus 30.03.2004, 10:33:05

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'

Napisany przez: scanner 30.03.2004, 10:43:12

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.

Napisany przez: eldad 30.03.2004, 16:32:51

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

Napisany przez: scanner 30.03.2004, 16:57:58

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.

Napisany przez: tahat 30.03.2004, 21:42:41

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.

Napisany przez: onlyX 31.03.2004, 09:47:08

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/

Napisany przez: tomekb 31.03.2004, 10:16:19

Zapomniales dodac ze w Apache'u potrzebna do tego jest wlaczona obsluga MultiViews, w przeciwnym razie bedzie wyskakiwac 404.

Napisany przez: scanner 31.03.2004, 10:33:35

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.

Napisany przez: Remiq 1.04.2004, 21:23:30

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

Napisany przez: Bieniasxyz 2.04.2004, 21:57:06

Jak dla mnie text dosyć ciekawy i pouczający :wink:

Napisany przez: sopel 5.04.2004, 22:01:50

wwarto tez wspomniec, ze przy tym sposobie lepiej jest stosowac adreseowanie bezwzgledne (np. do obrazkow czy arkusza styli)... - wlasnie testowalem ;-)

Napisany przez: Chutch 8.04.2004, 18:51:51

Ś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...

Napisany przez: hawk 8.04.2004, 22:09:15

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>.

Napisany przez: AcidBurnt 10.04.2004, 02:10:22

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

Napisany przez: wassago 10.04.2004, 02:16:24

dane z formularza wysylasz metoda POST, tak nie dopisujesz nic do url'a.

Napisany przez: AcidBurnt 12.04.2004, 14:02:51

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

Napisany przez: Maslav 12.04.2004, 15:12:34


http://fabrykadrobiu.com/php.gif
FireFox 0.8

Napisany przez: AcidBurnt 24.04.2004, 14:01:00

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...

Napisany przez: Wankster 24.04.2004, 15:27:44

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>

Napisany przez: AcidBurnt 7.05.2004, 17:40:06

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

Napisany przez: FastRed 11.05.2004, 16:30:06

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

Napisany przez: maliniak 31.05.2004, 13:53:28

a jak ma się sprawa w przypadku konfiguracji php nie jako "mod" tylko jako cgi i w dodatku via wrapper?

Napisany przez: kalinowski 8.06.2004, 12:54:59

a co jesli chce zrobic tyak :

Kod
www.strona.pl/zmienna/

zeby nie wpisywac juz tego index.php ?

Napisany przez: Puciek 8.06.2004, 13:42:58

Prosty, treściwy i jasny smile.gif

Napisany przez: cyberdex 23.06.2004, 17:54:38

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....

Napisany przez: GeoS 15.07.2004, 18:27:53

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).

Napisany przez: scanner 16.07.2004, 06:13:39

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.

Napisany przez: GrayHat 6.08.2004, 19:00:27

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?

Napisany przez: Paul 6.08.2004, 19:54:03

http://forum.php.pl/index.php?showtopic=10563&hl=mod+rewrite

Napisany przez: GrayHat 6.08.2004, 20:34:15

a oprocz mod_rewrite...

Napisany przez: rzseattle 7.08.2004, 20: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.

Napisany przez: microw 17.08.2004, 21:35:28

Bardzo podoba mi sie ten artykul bardzo przydatny

Napisany przez: Dabroz 17.08.2004, 21:55:53

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

Napisany przez: Drake 28.08.2004, 18:30:56

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

Napisany przez: zYm3N 29.08.2004, 16:06:59

Stronka nadal wygląda fatalnie.. w firefoxie..

Da się naprawić ?

Napisany przez: Seth 29.08.2004, 16:16:09

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 ftp://download.php.pl/article/Przyjazne%20URLe.pdf

Napisany przez: Leezard 19.09.2004, 21:55:20

a jakas metoda zeby kolejnosc argumentow w URL'u nie grala roli jest?

Napisany przez: Bakus 20.09.2004, 04:34:00

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

Napisany przez: ky3orr 26.10.2004, 09: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

Napisany przez: blitz 10.11.2004, 09:45:51

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.

Napisany przez: strife 10.11.2004, 19:41:04

Pierwszy raz się z tym spotkałem i napewno skorzystam, co do art'a jest spoko zrozumiale napisany... Gratuluje!

Napisany przez: Reinmar 20.11.2004, 17:56:46

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

Napisany przez: Seth 7.01.2005, 23:14:02

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.

Napisany przez: Ozzy 12.01.2005, 17:31:58

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))

Napisany przez: Seth 12.01.2005, 17:35:14

Czyli jednym slowem lepiej nie korzystac z wbudowanych mechanizmow sesji w php przy rewrite'cie winksmiley.jpg

Napisany przez: Ozzy 12.01.2005, 17:45:14

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.

Napisany przez: bregovic 12.01.2005, 20:51:40

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

Napisany przez: Ozzy 12.01.2005, 22:20:22

Można, ale zapraszam na PM/JB/GG smile.gif

Napisany przez: a79rtur 16.04.2005, 16:13:42

czy ktos znalazl sposob na ominiecie problemu z przeladowywaniem sie strony, opisanego tutaj:
http://forum.php.pl/index.php?showtopic=14301&st=20&#entry113831

mam na stronie ,pomieszany kod php i html i przeladowuje sie ona kilka razy jesli uzyje adresu postaci np. index.php/zm1/zm2, z tego co widze jest to powodowane ladowniem sie styli, swf'ów itp.

Napisany przez: bigZbig 19.04.2005, 10:11:40

scanner dobry artykul ale brakuje w nim przynajmniej jednej istotnej informacji tj. koniecznosci stosowania bezwzglednych urli i zwiazanych z tym problemow. Jest to problem, ktory napewno wyskoczy i to juz na smamym poczatku zabawy z niceUrl.

Mod_rewrite mozesz moim zdaniem sobie w tym arcie podarowac traktujac to zagadnienie jako temat kolejnego arta z cyklu. Tak na marginesie rozwiazanie kozystajace z mod_rewrite przynajmniej na pierwszy rzut oka bo nie zglebialem go wydaje mi sie nie tylko trudniejsze ale w zasadzie nie wnosi tez zadnej nowej funkcjonalnosci. Moge sie mylic, ale w takim wypadku prosze jakas madra glowe o sprostowanie.

Co do przewijajacego sie w tym temacie problemu przekazywania identyfikatora sesji, ktory pojawia sie tylko w przypadku, kiedy nie ma innej mozliwosci jego przekazania np. poprzez ciasteczko, moznaby sie pokusic o napisanie odpwiedniej funkcji dodajacej go na koncu adresu. W przypadku przyjaznych urli jest tylko ten problem, ze istotna jest nie tylko kolejnosc, ale tez ilosc zmiennych (a wlasciwie ich wartosic) dlatego w przypadku takiej funkcji - nazwijmy ja appendSID - konieczne byloby takze zaimplementowanie mechanizmu, ktory potrafilby rozpoznac czy w $_SERVER['PATH_INFO'] zawarty jest SID czy tez nie i w takim przypadku odpowiednio przypisac wartosci do zmiennych.

Ostatecznie moznaby sie pokusic o zawarcie w przyjaznym url takze informacji o nazwach zmiennych ale wtedy nasze urle nie bylyby juz takie przyjemne dla oka.

Konczac ten przydlugawy wywod chcialbym jeszcze zauwazyc, ze chociaz dzisiaj - a przynajmniej jeszcze wczoraj ;-) - pajaczki indeksowaly przyjazne urle, to jutro moga przestac to robic. W koncu jest to naruszenie pewnych zasad, podstawa ktorych bylo zalozenie aby nie katalogowac tresci dynamicznej, ktora ulega ciaglym zmianom. Dzisiaj ten artykul generuje sie na pierwszej stronie, a jutro pojawi sie na piatej bo na pierwszej bedzie juz nowszy. Tutaj zglaszam sie z apelem do wszystkich stosujacych niceURL. Robcie to z glowa bo po to tworcy wyszukiwarek nakladaja pewne ograniczenia co do indeksowania stron abysmy mieli do dyspozycji jedynie aktualne i w miare rzetelne informacje.

Napisany przez: nospor 19.04.2005, 10:33:46

NO wlaśnie. Po co stosować te przyjazne url. Url jest dla skrytpu nie dla użytkownika. Użytkownik klika w link i ma dostać to co chce. Jemu wsio ryba jaki to będzie url, czy będzie coś z niego kumał czy nie. To skrypt ma wiedzieć jakie dane ma wyciągnąć i co znich zrobić.

Napisany przez: bendi 19.04.2005, 11:04:17

Cytat(Seth @ 2005-01-12 18:35:14)
Czyli jednym slowem lepiej nie korzystac z wbudowanych mechanizmow sesji w php przy rewrite'cie winksmiley.jpg

Jako ze odpowiedzi na pytanie Seth'a nie widze, a nurtowalo mnie ono jakis czas temu to napisze moja regulke, ktora sie sprawdza:
Kod
RewriteRule ^([a-z]{2}/)?([a-zA-Z0-9_]+)?/?$  index.php?lang=$1&a=$2&%{QUERY_STRING}&http_auth=%{HTTP:Authorization} [L]

Jak widac dodaje sobie wszytkie zmienne get'owe, ktore zostaly przeslane w tradycjny sposob, oraz naglowek Authorization, ktory jezeli php dziala w trybie safe_mode nie zostaje zwrocony przez funkcje http://pl.php.net/getAllHeaders

Napisany przez: xarr 21.04.2005, 08:02:46

nospor: niekoniecznie. Szczególnie przy rozbudowanych serwisach prosty adres url w stylu ścieżki dostępu do pliku to często wygoda. Gdzie, co można znaleźć, komuś to polecić, czy nawet przyjść do roboty i z głowy wklepać url. Oczywiście jak zwykle to kwestia podejścia i nie każdy to uważa za konieczne mimo bezspornej zalety podczas pozycjonowania www.

Napisany przez: nospor 21.04.2005, 08:05:31

dzięki xarr winksmiley.jpg Twoje wyjaśnienie faktycznie wyjaśniało by takie zastosowanie urli.

Napisany przez: xarr 21.04.2005, 13:11:09

Nospor: Hehe i tak wiem, ze nie powiedzialem nic nowego, ale dzieki za... "dobra mine do zlej gry" biggrin.gif

Pozdrowka

Napisany przez: camelx 12.06.2005, 13:10:00

Mam małą prośbę. Czy mógł by ktoś napisać jakiś malutki przykład wykożystania 'przyjaznych url-i' w praktyce. Chodzi mi o jakiś prosty przykład gdzie były by ze dwa linki wykorzystujące ten sposób...
Będę bardzo wdzięczy za pomoc smile.gif
Pozdrawiam

Napisany przez: bela_666 12.06.2005, 13:13:44

http://en.wikipedia.org/wiki/Main_Page
http://php.pl/
?

Napisany przez: camelx 12.06.2005, 13:22:32

yyy, tzn. chodziło mi raczej o jakiś kod php... Jak wykorzystać to w praktyce:

  1. <?php
  2. $arrParams = http://www.php.net/array();
  3. $strDefaultPath = '/newsy/pokaz/strona/1';
  4. $_SERVER['PATH_INFO'] = http://www.php.net/isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : $strDefaultPath;
  5. $arrParams = http://www.php.net/explode( '/', http://www.php.net/substr( $_SERVER['PATH_INFO'], 1) );
  6. http://www.php.net/echo '<pre>';
  7. http://www.php.net/var_export( $arrParams );
  8. http://www.php.net/echo '</pre>';
  9. ?>

questionmark.gif?

Napisany przez: NuLL 12.06.2005, 13:36:54

Normalnie questionmark.gif Masz poprostu ładniejszy adres - musisz się pobawić w rozpoznawanie zmiennych i tyle smile.gif

Napisany przez: camelx 12.06.2005, 14:34:08

No dobra, ale co zrobić jeśli jestem na 'strona1.php' i chcę przejść na 'strona2.php' a dokładniej 'strona2.php?go=test' questionmark.gif

strona2.php wygląda np. tak

  1. <?php
  2. switch(_$GET['go'])
  3. {
  4. case 'test':
  5. http://www.php.net/echo 'udalo sie';
  6. break;
  7. }
  8. ?>


Co muszę zrobić, żeby mój adres wyglądał mniej więcej tak: strona2/go/test questionmark.gif

Napisany przez: NuLL 12.06.2005, 15:02:56

mod_rewrite jest potrzebyn.

Jak chcesz dysktuować o swoim problemie załóż nowy temat bo rozmawiamy nt. artykułu smile.gif

Napisany przez: yavaho 11.07.2005, 15:33:46

Mam jedno pytanie dotyczace pliku .htaccess
jak ma wygladac zawartosc takiego pliku jezeli kazdy adres chce przekierowac do pliku index.php

czyli wpisuje przerozne adresy np:
www.mojadomena.pl/katalog1/katalog2/katalog3
www.mojadomena.pl/plik.php
www.mojadomena.pl/plik.php?id=1
a ma sie otworzyc tylko:
www.mojadomena.pl/index.php

Napisany przez: sopel 17.07.2005, 10:02:51

Kod
RewriteRule ^(.*)$ index.php

Napisany przez: pwa 18.07.2005, 13:23:23

W momencie gdy zastosuje przyjazne url-e wyrzuca mi calkowicie style i grafike, dodam ze uzywam Smarty. Nie mam pojecia gdzie tkwi przyczyna tego problemu??

Napisany przez: bela_666 18.07.2005, 13:29:39

Używaj bezwzględnych URL-i.
Daj tag <base href="http://foo.pl/" /> w <head>.

Napisany przez: pwa 18.07.2005, 13:48:49

przerobilem adres styli w szablonie (na ../style/style.css) i tez dziala ale sprobuje z adresami bezwzglednymi biggrin.gif dzieki

Napisany przez: janek 1.08.2005, 12:10:27

chciałbym wykorzystać niceURL, ale muszę wysłać dane z wyszukiwarki (formularza) przez GET. Da się zrobić tak, żeby wszedzie tam gdzie są wyniki wyszukiwania stosować "normalne" adresy (z "?"), a na pozostałych stronach niceURL?

Napisany przez: tiraeth 2.08.2005, 11:42:50

Formularze są do wysyłania danych POST'em smile.gif Po co wysyłać GET'em? Mało bezpieczne i bardzo żadko stosowane...

Napisany przez: janek 2.08.2005, 12:09:50

GET ponieważ:

1. przy wyszukiwarce nie potrzebne mi aż tak bardzo bezpieczeństwo jakie daje POST

2. ktoś może zapisać sobie wyniki wyszukiwania do ulubionych (bo ma zmienne w URL-u)

3. po otrzymaniu wyników wyszukiwania można przejść do szczegółów danego wpisu, potem ludzie robią często wstecz w wyszukiwarce. Nie chcę żeby dostawali informację o wygaśnięciu strony lub o tym, ze dane post zostana przesłane ponownie (chyba FF tak robi).

... ale zostawmy przewagę POST nad GET lub GET nad POST, co myślicie o wymieszaniu url-i z "?" i niceURL w jednej aplikacji? Bo to było moje pytanie ...

Napisany przez: karolski 23.08.2005, 00:27:57

artykuł jest bardzo fajny ale przydal by sie maly opis jak to uruchomic w praktyce bo pytania sie powtarzaja np. o <base>

Napisany przez: scanner 23.08.2005, 07:12:24

W najbliższym czasie artykuł zostanie poprawiony i zaktualizowany. Cierpliwości smile.gif

Napisany przez: nightspirit 30.08.2005, 01:34:48

/index

  1. <? 
  2. $arrParams = http://www.php.net/array(); 
  3. $strDefaultPath = '/index'; 
  4. $_SERVER['PATH_INFO'] = http://www.php.net/isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : $strDefaultPath; 
  5. $arrParams = http://www.php.net/explode('/', http://www.php.net/substr($_SERVER['PATH_INFO'], 1)); 
  6. /************************/
  7. if ( $arrParams[0] == 'news' )
  8. {
  9.     if ( $arrParams[1] == 'view' )
  10.     {
  11.         if ( http://www.php.net/isset( $arrParams[2] ) )
  12.         {
  13.             http://www.php.net/echo 'id = '.$arrParams[2];
  14.         }
  15.     }
  16. }
  17. ?>

a .htaccess to wiecie jak wygląda

A link będzie wyglądać www.foo.com/index/news/view/1

pozdrawiam, ns

Napisany przez: djcinek 17.01.2006, 11:04:25

Scanner, jam ci niegodzien nog calowac. Zastanawialem sie ostatnio jak to zrobic i dzieki Twojemu artykulowi mi sie "otworzylo". DziekI! aarambo.gif

Napisany przez: vieri_pl 17.01.2006, 16:34:29

A ja mam problem z tym kodem z artykułu...

Mam w pliku news.php linijke:

  1. <?php
  2. if ($_GET['dzial'] == 'wiadomosci'){
  3. ?>
JEśli dział to wiadomosci to pokazują się newsy... Link poprzednio wyglądał tak index.php?dzial=wiadomosci, no i chcę aby wyglądał ładniej, np index,dzial,wiadomosci... Jak przerobić kod scannera i tą linijkę sprawdzająca dział questionmark.gif

Nie jestem specjalistą w php, i mam z tym problem... Prosze pomóżcie !

smile.gif smile.gif smile.gif

Napisany przez: adam187 26.01.2006, 12:58:53

Jak dokładnie powinien wyglądać .htaccess
mam tak:

Kod
<Files linki>
ForceType application/x-httpd-php
</Files>

Mam w katalogu plik linki.php i wywala mi 404
Na początku miałem bląd 500 ale admin dal mi prawa
i teraz powinno działać ale zonk. Może coś jeszcze w
ustawieniach serwa ?

Napisany przez: Sabistik 26.01.2006, 18:08:54

Cytat
Mam w katalogu plik linki.php i wywala mi 404

nie weim co ty tam masz ale to ma byc plik 'linki' bez rozszerzenia. po to wlasnie dokonujesz wpisu w htaccess

Napisany przez: adam187 26.01.2006, 18:47:58

Cytat(Sabistik @ 2006-01-26 17:08:54)
Cytat
Mam w katalogu plik linki.php i wywala mi 404

nie weim co ty tam masz ale to ma byc plik 'linki' bez rozszerzenia. po to wlasnie dokonujesz wpisu w htaccess

o to chodziło smile.gif wielkie dzięki i pozdrawiam

Napisany przez: jumanji 27.01.2006, 08:45:24

jestem nowy wiec nie bijcie smile.gif
klikam na link podany w pierwszym poscie i nie dziala biggrin.gif
tytul brzmi zachecajaco wiec bylbym dzwieczny za dzialajacy link

pozdr

Napisany przez: ActivePlayer 27.01.2006, 08:54:22

wortal zmienił postać, zmieniły się też linki.
tutaj nowy, prosze kogoś z uprawnieniami o zaedytowanie 1 postu i poprawienie tez tam.
http://phppl.ezpublish.no/phppl/wortal/artykuly/pomysly_porady_sugestie_dobre_nawyki/przyjazne_urle

---
Zrobione.
~mike_mech

Napisany przez: Spirit86 14.02.2006, 21:23:48

no i nikt nie rozwiązał problemu lokalizacji bezwględnej.
Dodawanie do każdego obrazka http://Adres_serwera/obrazek.jpg jest strasznie upierdliwe....
Czy jeżeli przeglądarka napotka w kodzie odnośnik http:// obrazki nie otwierają się wolniej (łaczy się z serwerem)? snitch.gif

Napisany przez: sopel 15.02.2006, 00:17:45

Cytat(Spirit86 @ 2006-02-14 21:23:48)
no i nikt nie rozwiązał problemu lokalizacji bezwględnej.
Dodawanie do każdego obrazka http://Adres_serwera/obrazek.jpg jest strasznie upierdliwe....

a BASE HREF w sekcji HEAD dokumentu? hawk podał już to rozwiązanie na początku wątku...

Cytat
Czy jeżeli przeglądarka napotka w kodzie odnośnik http:// obrazki nie otwierają się wolniej (łaczy się z serwerem)? snitch.gif


moze sie myle, ale żądanie to żądanie, czy wpiszesz http czy nie tak i tak musi ci się połączyć z tym samym serwerem gdzie znajduje sie obrazek i go pobrac (no chyba ze jest juz cacheowany).

Napisany przez: GrayHat 15.02.2006, 01:07:21

@sopel: przy pobieraniu strony i wszystkich grafik uzywa sie jednego polaczenia... co do obrazkow z http:// nie jestem pewien ale moze sie zdazyc w pIEknej przegladarce ze bedzie nawiazywal polaczenie jeszcze raz myslac ze obrazek jest hotlinkowany smile.gif

Napisany przez: Spirit86 15.02.2006, 11:36:04

Cytat(sopel @ 2006-02-15 00:17:45)
a BASE HREF w sekcji HEAD dokumentu? hawk podał już to rozwiązanie na początku wątku...

Kurcze, wczoraj jak to sprawdzałem (base href) to mi nie działał), dziś działa biggrin.gif.

Ale nadal wydaje mi sie, że np. IE napotkając w atrybucie src http otworzy nowe połączenie...

Ale jak jest już base href, tak być nie powinno smile.gif.

Napisany przez: son 23.02.2006, 21:40:08

Czy nie lepiej żeby ta linijka:

  1. <?php
  2. $_SERVER['PATH_INFO'] = http://www.php.net/isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : $strDefaultPath;
  3. ?>


wyglądała tak:

  1. <?php
  2. $_SERVER['PATH_INFO'] = $_SERVER['PATH_INFO'] != "" ? $_SERVER['PATH_INFO'] : $strDefaultPath;
  3. ?>


?

Napisany przez: sopel 23.02.2006, 22:06:40

Cytat(son @ 2006-02-23 21:40:08)
Czy nie lepiej żeby ta linijka:

  1. <?php
  2. $_SERVER['PATH_INFO'] = http://www.php.net/isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : $strDefaultPath;
  3. ?>


wyglądała tak:

  1. <?php
  2. $_SERVER['PATH_INFO'] = $_SERVER['PATH_INFO'] != "" ? $_SERVER['PATH_INFO'] : $strDefaultPath;
  3. ?>


?

bardziej tak

  1. <?php
  2. $_SERVER['PATH_INFO'] = !http://www.php.net/empty( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : $strDefaultPath;
  3. ?>


PATH_INFO nie zawsze jest ustawione wiec trzeba sie zabezpieczyc zeby nie wywalalo NOTICE errora

Napisany przez: kosheen2k 20.04.2006, 12:56:10

Witajcie! Mam mianowicie takie zapytanie: tutaj widze gadu gadu na temat przyjaznych urli a ja chcialem zapytac o url'e tego typu jak na przyklad na stronie owned.pl: http://owned.pl/?2:218::77 <-- jak zrobic tego typu linki? wiem ze bedzie cos z explode() ale naprawde nie mam zielonego pojecia jak to zaczac i jak zakonczyc.... chcialbym zrobic tak - ze pierwsze wartosc czyli po znaku "?" to dzial po ":" podstrona po "::" na przyklad jakas wartosc z bazy danych... prosze podpowiedzcie jak to napisac, szukalem wszedzie, szukalem w google, na roznych stronach o php... szukalem na google: "parsowanie url" - "url parsing" - itepe itede... prosze pomozcie bede bardzo wdzieczny za pomoc...

chcialbym wlasnie zrobic linki tego typu jak na stronie http://owned.pl czyli http://owned.pl/?2:218::77

Dziekuje i Pozdrawiam sadsmiley02.gif

Napisany przez: scanner 20.04.2006, 14:33:25

http://owned.pl/?2:218::77
to inaczej może być:
http://owned.pl/index.php?varA=2&varB=218&varC=&varD=77
tudziez:
http://owned.pl/index.php/2/218//77

Analizując inne linki na tej stronie, wnioskuję, że ten :: to ni mniej ni więcej, tylko null smile.gif

A jak to zrobić? Wystaczy zamienić separator / na : (może tez być . , | czy cokolwiek innego, czego nie będziemy traktowac jako wartości.

Napisany przez: kosheen2k 20.04.2006, 14:45:54

wiem probowalem tak zrobic, ale kiedy wpisze index.php::10 to nie dziala bo mowi ze nie ma takiej strony, probowalem naprawde na wszelkie sposoby... prosze czy ktos moze mi powiedziec jak to zrobic? dziekuje scanner za podpowiedz smile.gif ale prosze o pomoc... moze jakas prosta funkcje - najlepiej sprawdzona sad.gif prosze

Napisany przez: scanner 20.04.2006, 14:52:49

Ale to pokaż może kod, którym parsu[/QUOTE]jesz URL'a?
Prawdopodobnie (ale to musiałbym sprawdzić, gdyz teraz nie pamiętam) znak dwukropka nie może być traktowany jako separator aż tak bezpośrednio.

Sprawdze to wieczorem w domu i jeśli zadziała, to dam linka do jakiegoś demo smile.gif

Update:
Zobacz co napisałem w artykule:

Cytat
Jako ciekawostkę podam, że ukośniki (poza pierwszym) można zamienić na inny znak, uzyskując URLe o postaciach takich jak poniżej. Pamiętać tylko należy o tym, że takie adresy ponownie mogą być żle indeksowane przez wyszukiwarki.

Prawdopodobnie też na owned.pl sytuacja wygląda tak

http://www.scanner.eu.org/dev/niceUrl/?12:23::77

Napisany przez: kosheen2k 20.04.2006, 15:07:44

byłbym bardzo wdzieczny smile.gif tymczasem powalcze troszeczke z tym co napisales smile.gif (jesli moge per Ty smile.gif ) pozdrawiam i dziekuje za chec pomocy smile.gif

P.S. Kod parsujacy jest dokladnie ten sam ktory byl podany w linku na samym poczatku tematu.


probowalem zrobic to w ten sposob bez zadnego parsowania tylko zwykly $QUERY_STRING:

Kod
if ($QUERY_STRING == ':1') { echo 'blablabla'; }
i dziala

ale co mi z tego, musza byc z gory ustalone, a jesli ja chce do tego zrobic jeszcze zmienna :1111:11 to wtedy juz chyba musze uzyc parsowania prawda?


poradzilem sobie smile.gif :
http://www.kosheen2k.be/dev.php?:1:ktostam,1212:asd

w ten sposob, robi mi sie array w ktorym pomijam tylko [0] i juz mam to co chcialem smile.gif

chociaz moze Scanner masz lepsze rozwiazanie?

wlasnie BTW: jak zrobic ze jesli user nic nie wpisze po ? czyli np: ?:1:11 to zeby samo sie wpisalo tongue.gif ?

dokladniej chodzi mi o to... jesli tablica $var_array posiada tylko element [0] to ma sie zaladowac strona 0 ?

Napisany przez: scanner 20.04.2006, 18:30:35

Przeczytaj jeszcze raz dokładnie mój poprzedni post, zajrzyj równiez pod podany na końcu adres

Napisany przez: kosheen2k 20.04.2006, 18:45:30

Przeczytałem dokładnie, zajrzałem i wiem juz wszystko!

Dziękuję za wszelką pomoc! smile.gif Pozdrawiam

Napisany przez: occulkot 23.04.2006, 09:59:53

hehehe - na owned mam proste mapowanie

10 zmiennych ktore sa podawane w adresie - jako domyslny separator uzywany jest ":" natomiast separator tablic ";"

Kazdy podskrypt odwoluje sie do zmiennych adresowych - $z[typ], $z[id1], $z[id2]

mamy tam po kolei -
typ
3 zmienne typu id
5 zmiennych typu op/sort
1 zmienna typu podstrona winksmiley.jpg

ot i cala tajemnica wiary biggrin.gif

Ale powoli przymiezam sie do przejscia na mod_rewrite - rowniez z mapowaniem adresu

Pozdrawiam!

Napisany przez: kosheen2k 29.04.2006, 00:12:12

cześć occulkotku smile.gif powiem ze owned.pl to kupa dobrej roboty smile.gif pozdrawiam

P.S. wiem rozgryzłem już to smile.gif

Napisany przez: tomaroc 11.05.2006, 11:10:10

W kwestii linkowania (grafiki, styli.css, podstron itp...) relatywnego - nie trzeba ustawiać <BASE> w naglowku ani tymbardziej linkowac pełnym adresem (z http://) wystarczy kazdy link zacząc od / (slash) czyli np:

<img src="/karalog/obrazek.gif">
itp...
Sam dlugo na to nie wpadłem - dopiero ktoś mi podpowiedział wiec podaje dalej jak by jeszcze ktoś mial z tym problem....



Mam natomiast pytanie JAK ustawic na serv zeby jako glowna strona odpalała sie index (bez rozszerzenia) bo tymczasowym rozwiazaniem mam ustawione w pliku .htaccess strone błedu index i gdy nie znajduje index.php przenosi na index - ale nie jest to chyba prawidlowe rozwiazanie questionmark.gif?

z gory dzieki za jakies sugestie!
pozdro
tom

Napisany przez: tes 3.01.2007, 17:41:21

Myślę że może kogoś zainteresuje pojawienie się artykułu o tym samym temacie na phpfreaks.com:
http://www.phpfreaks.com/tutorials/149/0.php

Napisany przez: Wujashek 22.02.2007, 12:49:00

Kiedyś się przymierzałem do przyjaznych urli ale z czystego lenistwa nie chciało mi się tego zrobić.
Po przeczytaniu tego artykułu wreszcie coś z tym zrobiłem i szczerze mówiąc przy podejsciu obiektowym całkiem ciekawie to działa i jest przyjemne w użytkowaniu smile.gif

http://www.przyolkuskiej.pl/serwis/Gminny_informator/Wybory

Napisany przez: yavaho 22.02.2007, 15:51:08

Cytat(tes @ 3.01.2007, 19:41:21 ) *
Myślę że może kogoś zainteresuje pojawienie się artykułu o tym samym temacie na phpfreaks.com:http://www.phpfreaks.com/tutorials/149/0.php
Piszą tam że mozna to zrobić na samym PHP bez mod_rewrite ?
Bez mod_rewrite to nie bedzie działać.

Napisany przez: bregovic 19.03.2007, 14:00:33

To może działać bez mod_rewrite, jeśli zaakceptuje się fakt istnienia index.php i url'u. Coś w stylu http://bla.com/index.php/moja/fajna/stronka. Ale to zależy AFAIK od ustawień serwera.

Napisany przez: Jarod 15.05.2007, 20:54:26

Cytat(FastRed @ 11.05.2004, 15:30:06 ) *
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


Sorry, że odkopuje stary temat ale nie chcę zakładać starego wątku. Sprawdzałem ten sposób i nie widać, że skrypt uruchamiał się dwa razy. Może ktoś się orientuje czy to był problem przeglądarek?

Napisany przez: Xaviere 25.11.2007, 14:18:22

Linki się tworzą ok, ale jak chciałbym bez .php przy index, tak jak jest w artykule to mimo, to, że wrzucę:

Kod
<Files index>
ForceType application/x-httpd-php
</Files>

To jak wywołam:
localhost/VC/index/news/1 to mi wywali:
Kod
Not Found

The requested URL /VC/index/news/1 was not found on this server.
Apache/2.0.59 (Win32) PHP/5.2.3 Server at localhost Port 80

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)