ugrás a tartalomhoz

jQuery + SEO

neogee · 2010. Okt. 25. (H), 10.30
Sziasztok.

Most tanulgatom a jQuery-t és azt szeretném megvalósítani, hogy az oldal újratöltése nélkül frissüljön egy bizonyos doboz tartalma. Ezzel nincs is semmi gond, megy szépen.

A feladathoz tartozó html:

<a class="menuitem" href="http://site.com/rolunk/">Rólunk</a>
<a class="menuitem" href="http://site.com/eloadasok/">Előadások</a>
<a class="menuitem" href="http://site.com/kapcsolat/">Kapcsolat</a>
A szkript:

$( function() {
  $('.menuitem').click( function( e ) {
    $('.text').fadeOut('slow' , function(){
      var link = e.currentTarget.href.split('/');
      var page = link[link.length - 1] == '' ? link[link.length - 2] : link[link.length - 1];
      window.location.hash = page;
      $('.text').load('http://'+window.location.host+'/pages/'+page+'.html');
    } );
    $('.text').fadeIn('slow');
    return false;
  } );
});
A probléma azzal van, hogy ebből hogyan csinálok kereső optimalizált történetet.
Az teljesen világos, hogy aki nem rendelkezik JS támogatással annak is biztosítani kell lehetőséget a tartalom "megszerzésére". Ezt hivatott elintézni, hogy a linkek nem könyvjelzőként, hanem teljes urlként vannak megadva. Természetesen az egész alatt fog majd futni egy szerveroldali szkript is. Az fogja kiszolgálni majd azokat a kéréseket, amik nem a http://site.com urlen érkeznek, hanem mondjuk a http://site.com/rolunk -ról.
Ügyebár a jelenlegi állás szerint a keresők a következő urleket indexelnék az oldalról: http://site.com/ , http://site.com/rolunk/ , http://site.com/eloadasok/ , http://site.com/kapcsolat/
Ekkor ha valaki a keresőkből érkezik mondjuk a http://site.com/rolunk/ linken, az alkalmazás gond nélkül visszaadja a teljes oldal, amiben a rolunk menüpont tartalma szerepel a megfelelő helyen, ám nekem ezzel az a bajom, hogy ha van a kliensnek js támogatása, akkor a további navigálás esetén a link elég csúnya lesz. ( pl.: http://site.com/rolunk/#kapcsolat )
Viszont az sem megoldás, hogy a hash-es url-t tároltatom el indexeltetem be a keresőkkel, mert akkor meg ha valaki olyan érkezik a keresőből akinek nincsen js támogatása, akkor neki nem fog betöltődni a tartalom.

Nem tudtok erre valami megoldást? :)
 
1

.htaccess

ironwill · 2010. Okt. 25. (H), 16.38
Erre (is) jó a .htaccess fájl. (url átírás)
Érdemes utánna olvasni, nem csak emiatt.
2

.htaccess-t használok, de nem

neogee · 2010. Okt. 25. (H), 17.57
.htaccess-t használok, de nem erre. Őszintén szólva nem is igazán értem, hogy mit, és hogyan kellene itt állítgatni.

Tudnál adni egy kis segítséget?
3

Lehet mégiscsak értem

neogee · 2010. Okt. 25. (H), 18.09
Lehet mégiscsak értem :)

Arra gondolsz, a htaccess segítségével alakítsam át a hagyományos url-t hash-es urlre?

pl:

ezt kéri le a felhasználó: http://example.org/rolunk/
erre alakítom: http://example.org/#rolunk

Ha erre gondolsz, akkor szerintem önmagában ez sem jó megoldás. Hiszen csak akkor jut el a szerverhez a kérés, ha a felhasználónál valamiért nem támogatott a js, akkor viszont feleslegesen alakítom át, mert nem fog neki betöltődni a tartalom.

Ha nem erre gondoltál, akkor végképp nem értem, hogy mi köze az anchor-hoz a htaccessnek :)
4

re

ironwill · 2010. Okt. 25. (H), 23.24
a bajom, hogy ha van a kliensnek js támogatása, akkor a további navigálás esetén a link elég csúnya lesz. ( pl.: http://site.com/rolunk/#kapcsolat )


Erre reagálva írtam, hogy a hash-es formát alakítsd át normál alakúvá.

http://site.com/rolunk/#kapcsolat -> http://site.com/rolunk/
(ez a működésben nem jelent módosulást, mert a htaccess, csak átírja az url-t, de nem navigál át, mintha js-el irányítottad volna át)
5

Nos erre azért nem gondoltam,

neogee · 2010. Okt. 26. (K), 00.06
Nos erre azért nem gondoltam, mert legjobb tudomásom szerint, a hash-es forma el sem jut a htaccess ig... mivel az az aktuális betöltött lap egy elemére mutat alapértelmezetten.
De szólj ha tévednék! :)

Lehet hogy nem írtam le elég világosan.
Ebben az esetben arról van szó, hogy a felhasználó képes futtatni JS-t.
Megérkezik a http://example.com/rolunk/ linkre.
Ekkor a szerveroldal segítségével betöltődik a megfelelő tartalom amit a /rolunk jelez a php-nak a linkben.
Ezek után ha a felhasználó mondjuk a menüben a kapcsolat menüpontra kattint akkor a JS segítségével a link így alakul:
http://example.com/rolunk/#kapcsolat
Ez a link váltás el sem jut a szerver felé, hiszen tartalmat anchor elemet, ami a böngészőnek ügye azt jelenti, hogy nem kell elküldeni a szerver felé, mert az adott dokumentum egy részére mutat a link.

Valójában az én problémám az, hogy az url-ek melyik verzióját tároltassam el a keresőkkel.
6

sztem ha van js és nem a

szabo.b.gabor · 2010. Okt. 27. (Sze), 11.29
sztem ha van js és nem a gyökéren áll, akkor az első klikk legyen egy újratöltés.. ami már neked megfelel.. nem hiszem hogy tudnál mást csinálni
7

Igen, végül én is így

neogee · 2010. Okt. 27. (Sze), 11.34
Igen, végül én is így oldottam meg a gondot. :)
Ha van js, és a location.pathName nem üres, és nem is /, akkor csinálok egy refresht.

Azét köszönöm. :)