Autor Zpráva
Anonymní
Profil *
Ahoj, mam taky problem. Tu mam kod z .htaccess:

Options -Indexes

Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L]


Ide o to, ze ak zadam adresu v style www.stranka.sk/hocico_okrem_lomitka tak to ide. Adresa je prepisana na index.php?q=hocico_okrem_lomitka. Problem nastane ak do url pridam /, teda napriklad www.straka.sk/home/1/ . Adreja je vtedy taktiez prepisana spravne na index.php?q=home/1/ ale problem nastava ked sa nacitavaju obrazky a externy css styl uvedeny v stranke. Ak mam trebars v tagu img cestu k obrazku img/obrazok.jpg tak mod rewrite tu cestu prepisuje na home/1/img/obrazok.jpg . Cize na stranke nie su vidiet ziadne obrazky a styly. Este HTTP protokol generuje kod 200 hoci takato zlozka neexistuje.

Za rady vopred dakujem.
FantomX1
Profil
Ano, mod_rewrite skutocne prepisuje relativne cesty v hlavnom subore, alebo externych CSS styloch.
Jednym z dvoch moznych rieseni je vpisat do dokumentu na ktory mod_rewrite odkazuje vlozit do hlavicky neparovy tag "base" s atributom "href" a relativna cesta sa bude doplnovat prave touto adresou. Teda vpiseme to takto <base href="http://www.stranka.sk/"/> a bude sa to vztahovat k danej stranke, takze aj ked mod_rewrite prevezme adresu vo formate www.stranka.sk/home/1/
nebude prepisovat obrazky ako homewww.stranka.sk/home/1/images/ ale ako www.stranka.sk/images, co je presne to co sme chceli kedze sa dokument na ktory prevadza mod_rewrite nachadza presne v document roote teda v hlavnom adresari tejto stranky. Keby sa nachadzal niekde nizsie v stromovej strukture adresarov, tak prislusne zmenime base href. V pripade ze mame viacero dokumentov na ktore mod_rewrite prevadza, vlozime do kazdeho prislusnu adresu v tagu base href="".

Druhym sposobom ktory nemusi vzdy fungovat, zalezi to od nastavenia serveru je pred kazdy obrazok pisat este aj lomitko /. Ak to tak mame nastavene v konfiguracii Apache tak pri pouziti lomitka sa odvolavama zase na Document Root a relativna cesta sa bude nahradzat prave hlavnym adresarom na stranke bez nejakej dalsej stranky.

Poznamka:

Nezalezi na tom ci mate hosting na adrese domeny 3tieho stupna. Prepise to spravne tak ci tak, pretoze v tomto pripade sa bude relativna cersta pocitat k document rootu ako hlavnemu dokumentu vaseho webu.
Kajman
Profil *
Osobně raději používám v dokumentech absolutní cesty.

Nejsem si jist, zda všechny prohlížeče a roboti zvládaji tag base.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0