Teme: URL rewriting

mod_url: Prikaz poddirektorijuma u rutu domena

Skraćena veza: http://pedja.supurovic.net/veza/5017

Često na internetu nailazim na sajtove koji imaju svoje domene ali upotrebljene na čudan način: veb aplikacija, obično neki CMS ili blog, je instalirana i vidljiva u poddirektorijumu a naslovna strana vrši redirekciju u taj poddirektorijum. U lošijim slučajevima redirekcije i nema nego na naslovnoj stoji link na poddirektorijum pa posetilac mora sam da ga klikne.

To je stvar koju treba izbegavati, najpre zato što loše utiče na ukupnu optimizaciju sajta na pretraživačima a nije ni u skladu sa pravilima upotrebljivosti sajta.

Najčešći razlog zašto su sajtovi ovako instalirani je taj što su CMS aplikacije i blogovi tako spakovani da kada ih neko raspakuje direktno na sajtu, to se stvarno smesti u poddirektorijum. Nikad mi nije bilo jasno zašto autori tako pakuju veb aplikacije ali valjda imaju dobar razlog.

Za vordpres sam svojevremeno napravio i namenski skript koji omogućava da se automatski instalira u osnovni direktorijum sajta.

No, ako ste već instalirali aplikaciju u poddirektorijum i sajt je već neko vreme aktivan, premeštanje je nezgodan proces, pogotovo za nekog ko tome nije vičan. To ipak nije kraj sveta. Možete primeniti redirekciju (url_rewriting) i njom podesiti da se sajt vidi u osnovnom direktorijumu iako se aplikacija ne nalazi na tom mestu.

Podešavanje redirekcije

Za primer, uzmimo da ste instalirali blog u poddirektorijum blog na svom domenu. To znači da se vašem blogu pristupa na adresi http://www.vasaadresa.com/blog/. Ipak, želite da se blog u stvari vidi na osnovnoj adresi: http://www.vasaadresa.com.

U .htaccess datoteku u osnovnom direktorijumu sajta stavite sledeće:

RewriteEngine on
RewriteCond %{REQUEST_URI} !blog/
RewriteRule (.*) blog/$1 [L]

Ovako podešena redirekcija će svaki upit koji dođe na sajt, usmeriti na poddirektorijum blog/ ali se to neće videti. Korisnik (i što je važnije – pretraživač) će i dalje misliti da pristupa osnovnom direktorijumu. Dakle, ovim će sadržaj sajta biti dostupan i ako se pristupa domenu direktno bez blog/ putanje.

To nije sve

Nakon što ovo podesite potrebno je da usaglasite i samu aplikaciju sa novom putanjom. Da li je nešto potrebno uraditi i šta, to zavisi od same aplikacijepa ne mogu dati neki konkretan predlog.

Obično se negde u apliakciji podešava koja joj je osnovna adresa, pa tu treba upisati novu adresu bez blog/ putanje.

Takođe treba proveriti da li aplikacija takođe priomenjuje redirekciju za svoje potrebe, na primer za SEO optimizovane adrese dokumenata i uskladiti to sa redirekcijom koju smo podesili, ako je to potrebno.

Ovim podešavanjem omogućeno da se sajtu pristupa na adresi osnovnog domena ali nije onemogućeno da se pristupa i sa starom adresom koja sadrži blog/ putanju. To nije baš dobro zbog indeksiranja na pretraživačima. Bilo bi bolje da se stare adrese koje sadrže blog/ redirektiju na adrese na novom domenu.

Nije mi uspelo da to rešim jer se pravi trakalica: ako je uključena redirekcija sa blog/ na osnovni direktorijum to server uradi, ali onda naiđe na pravilo koje putanje sa osnovnog direktorijuma redirektuje na sadržaj koji se nalazi u blog/ direktorijumu i tako se stvar vrti u krug dok server na krajune shvati da je  u mrtvoj petlji i ne prijavi grešku.

Ako neko uspe da reši ovaj problem nek javi. Dotad, nije tako strašno što se sajt može videti vidi na obe adrese. U vordpresu to i nije problem, jer će on sam, ako mu se priđe sa „pogrešnom“ adresom, da uradi redirekciju na ispravnu, a pošto se to radi u PHP kodu, to neće biti u sukobu sa podešavanjima u .htaccess datoteci.


Podelite ovaj članak sa prijateljima


5 comments to mod_url: Prikaz poddirektorijuma u rutu domena

  • Da li je to potrebno uraditi i kada je WordPress u pitanju? Kod njega je u kontrolnom panelu data opcija da instalacija bude u svom direktorijumu, a blog/sajt da se nalazi/vidi na osnovnoj adresi sajta, s tim da se index.php fajl iz direktorijuma u kojem je instalacija prekopira u root. Kod mene je takav slučaj, i sve se dobro prikazuje posetiocu, takođe vidim da pretraživači nalaze sadržaj mog sajta.. međutim, blog mi se ne pojavljuje ni na jednom blog-agregatoru, pa ne znam da li je problem možda u vezi sa ovakvom postavkom sajta?

  • Ako ti sve radi kako treba, ništa ne pipaj. Mislim da od verzije 3, Vordpress nudi tu opciju i to je sasvim ok rešenje. Ne bi trebalo da to ima veze sa blog agregatorima.

  • ivan

    Zato ja uvek otpakujem fajl u lokalu pa ga ponovo arhiviram (tako da se otpakuje u root).
    Ali ako već napravim početničku grešku i otpakujem ga direktno na webserveru u pod-direktorijumu (što mi se često dešavalo), onda jednostavno označim sve fajlove pa MOVE i označim root folder. I voila…problem rešen bez nepotrebnog rewrite-a.
    🙂
    Ako je web aplikacija već instalirana onda jednostavno odradim isti proces kao kada radim migraciju na drugi server. Prilično jednostavna metoda i radi kod većine CMS i forum skripti.

  • Darko

    Odlican tekst.
    Samo imam jedno pitanje:
    Kako omoguciti pristup drugim podfolderima na sajtu?
    Kad iskopiram ovaj kod u .htaccess ne mogu da pristupim ni jednom folderu osim /blog (u tvom primeru) .
    Dakle, kako napraviti da se folder /blog vidi kao root, a ostali da rade kao i do sada ?

    Pozdrav i hvala !

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Popunite izraz tako da bude tačan: *