ugrás a tartalomhoz

PATH_INFO alapú rövid webcímek vs. relatív URL-ek

s_volenszki · 2006. Május. 29. (H), 17.24
Ismerkedés a rövid webcímekkel.

Sziasztok fórumolók!

Végre rászántam magam, hogy átalakítok egy weboldalt a „Rövid webcímek” jegyében.

Na......... Ez eddig ment is! Aztán jöttek az érdekesebbnél érdekesebb fejlemények.
Megosztom veletek, bízom benne hogy kapok segítséget és ezáltal más is okulhat a történetből!

Még a fizika tanárom mondta a főiskolán, hogy egy adott témában kérdezni csak úgy lehet, ha van valami fogalmad a kérdésekkel kapcsolatban! Hát remélem, nem kérdezek túlságosan ovis dolgokat!

Elkezdtem a hivatkozásokat átalakítani a következő módon:

Van egy index oldalam (full-fullos fizetős tárhelyen, aldomainen), ami a betöltődése során képeket és szöveget olvas ki sql-ből. Azt hogy mit olvasson ki, az határozza meg, melyik hivatkozásra kattintanak.
Ez mondjuk egy hivatkozás a 20-ból:

http://www.könyvtárnév.domain.hu/index.php?kepid=1&szovegid=1

Az index.php futás közben átveszi a két változó értékét,
if(isset meg minden ilyesmi
$kepid=$_GET.... és $szovegid=$_GET.... és már cuccol ki az adatbázisból!
Ez így irtó szuper, műxik már egy éve! Én gondoltam egyet és ezt tettem:

http://www.könyvtárnév.domain.hu/index.php/1/1

A weblaboron okultakból a PATH_INFO függvénnyel megszerzem az index.php utáni adatokat és átadom a $kepid és $szovegid változóknak! Nagyon jól működik, kihozza az adatokat a db-ből, DE, az összes hivatkozásom megőrül! És értem is, hogy miért, de működésképtelenné válik az oldal:
Újra töltődik, csak az összes kép és objektum hivatkozása kiegészül a /1/-vel, híszen könyvtárnak hiszi, tehát:

Első betöltődéskor egy kép:

http://www.könyvtárnév.domain.hu/images/kép.jpg

Ha meghívok egy rövid hivatkozást, akkor:

http://www.könyvtárnév.domain.hu/index.php/1/images/kép.jpg

?????????????????????

Tud valaki ehhez mit szólni?

Köszike, Volenszki Sándor als. s_volenszki
 
1

Base

mefi · 2006. Május. 29. (H), 17.37
Nem tudom, hogy mennyire szabályos, de egy ilyen kód
<base href="http://www.konyvtárnév.domain.hu/" />
a <head> részben definiálva megoldhatja a problémát.
4

Base

s_volenszki · 2006. Május. 29. (H), 19.57
Barón működik! Köszönöm!
2

hellóka

vbence · 2006. Május. 29. (H), 19.45
Én abszolút url-eket hazsnálok mindig és mindenek között, és olyankor abszolút nincs ilyen probléma. Amúgy furcsálom, hogy relatívat használsz. Ilyenkor nem mozgathatod a php-idet sem, sőt include fájlokat sem írhastz, amik mindenhonnan működnek...
3

Én abszolult url-eket használok...

s_volenszki · 2006. Május. 29. (H), 19.54
Az mit is jelent? Hogy ilyen a hivatkozás: <a href="index.php/1/1">
Mert ha igen, azzal u.a. Mellesleg ezek a hivatkozás formátumok már végső elkeseredésemben keletkeztek, álltalában én is olyat használok, ha az az!

s_volenszki
5

Az azt jelenti...

mefi · 2006. Május. 29. (H), 23.17
..., hogy megadod a közvetlen elérést, tehát nem src"img.gif", hanem src="http://domain.hu.com.cc/valami/img.gif".
6

Relativ URL-ekkel boldogabb a vilag

Adam · 2006. Május. 30. (K), 08.48
Szerintem, ha miden linket PHPbol is generalsz sokat sporolsz -- meretben, kodban, stb. --, ha relativ URLeket hasznalsz. Ugyis lesz PHPdban egy konfiguracios file, ahol megadod az elkeszult oldaladnak a domain-jet / utvonalat, es akkor egyszeruen azt a <head>-be berakod a <base href="">-fel. Igen, szabvanyos, szoval nem erheti szo a haz elejet! :)

Hogy az includeokat hogyan keverted ide, azt nem tudom, mivel ugysem http-n keresztul inculdeolsz, a programod (php kodod) meg ugyis egy altalad meghatarozott struktura szerint epul fel, szoval ott sem lehet baj a relativ hivatkozasokkal. Ha pedig aki felrakja az oldalt, akarhova rakhatja a php filejaidat, akkor azoknak is keszitesz a konfiguracios file-odban egy-egy bejegyzest a kulonfele konyvtaraknak (include, dblayer, template engine, cache folder, stb.).

Es valoban, ha az -- a mar generalt -- oldalon van pl. 100 linked, es a domain-ed csak a http://www.endomainem.hu/ alatt van, az is egybol 24*100, tehat 2.4K plusz letoltest jelent, ami lehet neked DSL/Cabel eleresen nem sok, de GPRSen mar meghosszabbithatja a letoltes idejet.

Udv,
Adam
7

Relatív URL-ekkel boldogabb a világ.

s_volenszki · 2006. Május. 30. (K), 09.35
Nagyon köszönöm, Adam hozzászólását, tanulságos a dinamikus tartalom generálása közben keletkező html "szemét témában"! Én nem vagyok végzett web programozó (illetve nem web alapú programozási nyelvből végeztem), de a Kiló az Kiló!

s_volenszki
8

Nos...

vbence · 2006. Május. 30. (K), 18.31
Abszolút url pl:
<img src="/kep/small/kavefozo.jpg">
vagy:
<a href="/forum">

Az include fájl pedig úgy jön a képbe, hogy ha egy include azt tartlmazza, hogy:
<img src="kep.gif">
akkor ezt nem include-olhatod be a /index.php -be és a /forum/tema.php -be egyszerre, gondolom egyértelmű miért.

B
9

abszolút?

Anonymous · 2006. Május. 30. (K), 18.56
Abszolút url pl:
<img src="/kep/small/kavefozo.jpg">
vagy:
<a href="/forum">


sikerült két relatív url-t leírni. az abszolút url http-vel kezdődik. körülbelül ugyanúgy működik mint a fájlrendszereknél:
abszolút elérési út: c:\windows\valami, /var/valami
relítv elérési út: valami

gex
10

Hibrid

attlad · 2006. Május. 30. (K), 19.35
Az relatív URL abszolút útvonallal vagy valahogy így hívják.

Hátránya akkor jelentkezik ha alkönyvtárba kerül az oldal.
11

ya man

vbence · 2006. Május. 31. (Sze), 11.31
Köszönöm a pontosítást. Reméltem, hogy nem a lehető legnagyobb baromságot fogjátok belelátni a szavaimba, de ahogy mondják "holtáig tanul az állat"...

Az alkönyvtáras dolog valóban problémát jelent az így írt cuccnak, de ha egy oldal megéri, hogy dolgozzak vele, akkor megér 1500 forintot egy domainnévért. Vagy egy normálisabb "ingyenes" hosingot, mint pl az SDF.

B
12

egyéb előny vagy hátrány?

Anonymous · 2006. Május. 31. (Sze), 13.22
Eltekintve a mérettől, van valami előnye vagy hátránya valamelyik megoldásnak (abszolút url vs. base)?

Én úgy látom a base használata kódban is egyszerűsít, mert nem kell minden linket prefixelni az base-el.

jb
13

Előny

tiny · 2006. Május. 31. (Sze), 14.06
Ha mozgatod a weboldaladat, kicsit könnyebb egy base-t átírni, mint egy egész urlhadat :)
14

Hozzászólok a saját topicomhoz egy hét távlatában!

s_volenszki · 2006. Jún. 2. (P), 18.57
Hát igen! Ez tanulságos volt! Kiderült, hogy a fizetős tárhelyem nem jó arra amit szeretnék, továbbá teljes mértékben át kell struktúrálnom oldalamat, ahoz, hogy végérvényesen lecserélhessem a kérdőjeleimet szép rövid hivatkozásokra! Bár még így is marad egy csomó nyitott kérdés, akár relatív a hivatkozás, akár nem!

Bekrepáltak a felugró ablakok, mert a felugróban csak egy (nagy)kép jelenne meg, mivel nincs html tartalma ezért nincs base és a kép neve elé beszúrja az elötte legutoljára megnyitott oldal rövid hivatkozását.

Ahogy azt a Weblabor cikkében olvastam is, továbbá minden különböző tartalom megjelenítéséhez külön php file kell, így lőttek az eredeti struktúrámnak, hát újra tervezünk és építkezünk!

Úgy vélem ez a téma elég sok port kavart, ezért részletesen tájékoztatlak titeket a felmerülő problémákról, illetve folyamatosan kérem a segítségeteket!

Üdvözlettel:
Volenszki Sándor als. s_volenszki
15

Pontosítanék

vbence · 2006. Jún. 27. (K), 23.17
A barátságos vagy rövid cím SEMMILYEN befolyást nem gyakorol a struktúrádra. Használhatsz sok kicsi vagy egy nagy fájlt, esetleg bizonyos funkciókat kivehetsz a nagy fájlból, az egész rajtad múlik.

Használhatsz 404-et (nem annyira szép) vagy rewrite-ot (szebb) csak rajtad áll.

Én mostanában a

http:/domain.thd/c123/aki-masnak-vermet-as-maga-esik

tipusú címeket szeretem használni, egy központi irányitó php-vel, ami tudja, hogy a "c" betü a cikket jelenti, utána pedig a 123-at értelmezi és beírja egy globálba. Ezután a cikk.php-t beinclude-olja (egy tömbben van amúgy felsorolva, hogy milyen betü mit jelent). Az aki-masnak.... pedig a világon semmit sem csinál, viszont nagyon barátságossá teszi az url-t (pl. webstatban), és a keresők is szeretik.

Sok türelmet a próbálgatásban..
B
16

Rövid vs User frendly címek

Webappz · 2006. Jún. 28. (Sze), 09.13
Bár az is fontos, hogy viszonylag rövid legyen egy URL, de a jelentőssége inkább abban van, hogy beszédesebb és jobban megjegyezhetőbb. Az ember már csak ilyen, hogy jobban szereti, a szöveges dolgokat, mint a számhegyeket. Ezért IP helyett hoszt névre hivatkozik és éppen ezért hosszú paraméterlista helyett "user frendly" URL-eket használ. Az apache mod_rewrite modulja pont abban segít, hogy az URL-ünknek nem kell tükröznie a valós fájlrendszerbeli struktúrát. Tehát az összes URL-ünket egyetlen index.php-hoz irányítjuk, amely megfelelően kezeli őket. Így nem lesz problémád azzal, hogy hova linkelsz és mit.

Üdv: Webappz