Autor Zpráva
pan.kolouch
Profil *
Používám mod_rewrite na jednoduchém webu, kde přepisuji jen z www.neco.cz/stranka na www.neco.cz/index.php?page=stranka

Při použití toho pravidla dojde i k přepisu relativních cest vedoucích k obrázkům, css apod. Zatím to řeším tak, že pomocí PHP dělám z relativních odkazů absolutní, vše funguje v pohodě, můj dotaz zní, zda nedochází tímto k nějakému zhoršení rychlosti načítání stránek?

Myslím tím, jestli není rychlejší na webu přistupovat k css např. ../styles/default.css než http://www.neco.cz/styles/default.css? Nebo je to úplně jedno?

Další podotázka je, zda je možnost napsat pravidla mod_rewrite tak, abych mohl relativní cesty používat všude (css, obrázky) a přitom dosáhnout pěkných url?

Děkuji.
souki
Profil
Můžeš přece mod_rewrite použít tak, aby nepřepisoval soubory s učitou koncovkou.
Jinak absolutní odkazy bych ti doporučil psát pouze s lomítkem na začátku (/index.php?page=stranka). Efekt je stejný a přitom je to výrazně účelnější
pan.kolouch
Profil *
Problém je v tom, že v tomto nejsem nijak zdatný, v PHP umím nějaké základy, stejně jako jedno pravidlo v mod_rewrite, spíš se zabývám grafikou, ale řekl jsem si, že nějakých pár skriptů pro malé weby si napíšu. Výše uvedené tj. "/index.php?page=stranka" jsem zkoušel, nicméně v .htaccess mám toto pravidlo:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^(.*)/$ index.php?page=$1 [L]

což mi způsobí, že když dám do prohlížeče např. www.neco.cz/sluzby/ tak se sice načte příslušná stránka, ale změní se mi v hlavičce xhtml cesta k css tak, že se mi před to přidá právě to "sluzby", čímž je cesta neplatná a stránka se načte bez stylů.

Je tedy nějaký rozdíl v rychlosti načítání, když přistupuju přes abs. adresu http://www.neco... nebo přes relativní cestu /neco?

Případně, pokud mi někdo pomůžete se sestavením pravidel, velmi mi s tím pomůžete, děkuji.
bukaj
Profil
pan.kolouch
Je tedy nějaký rozdíl v rychlosti načítání, když přistupuju přes abs. adresu http://www.neco... nebo přes relativní cestu /neco?
No, krom toho, že /neco není relativní adresa , ale absolutní, stejně jako ta verze s doménou (relativní cesta by byla bez domény a lomítka na začátku, např. je neco), v rychlosti žádný rozdíl nebude.

A pro ty pravdila můžeš použít RewriteCond:
RewriteCond %{REQUEST_FILENAME} !\.(css|ico|jpe?g|png|gif|js)$ #přepíše vše, co nekončí na .css, .ico, .jpg, .jpeg, .png, .gif, .js
RewriteRule ^(.*)/$ index.php?page=$1 [L]
souki
Profil
řešilo se to tady asi před týdnem
Dranel
Profil
pan.kolouch
Můžeš také napsat toto pravidlo...
RewriteRule ^([A-Za-z0-9-]*)$ index.php?page=$1[L]

...a psát si všude adresy a cesty jak chceš. Přepisovat se ti bude jen to, co má v názvu velká/malá písmena a/nebo číslice a/nebo pomlčku.
pan.kolouch
Profil *
díky moc všem . vyzkouším .

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0