Autor Zpráva
Pepan223ER
Profil *
Ahoj, snažím se dát na stránky mod-rewrite pro hezká URL. Vše mi funguje jen se mi nezobrazují obrázky a nenačítají styly. Vím že je to tím, že používám relativní adresování a prohlížeč to hledá v jiné složce. Jak to ale udělat aby to hledal tam kde má, to nevím.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ ?pg=$1&id=$2


Jak toto upravit, aby to fungovalo?
Předem děkuji za pomoc
Ugo
Profil
ja s mod_rewrite zacal pouzivat tag <base href="http://localhost/">, pripadne absolutni cesty coz je jeste lepsi protoze s base href ma problem nahodnI gEnerator chyb.
Pepan223ER
Profil *
Ugo:
base už by se neměl používat myslim - mělo by to jít vyřešit přes mod-rewrite
Kajman_
Profil *
Pepan223ER:
Vím že je to tím, že používám relativní adresování
Tak používejte absolutní adresy.

Např.
<img src="/obrazky/abc.jpg">

http://www.jakpsatweb.cz/server/mod-rewrite.html#cesty
Ugo
Profil
no mel nemel me se nelibi i kdyby to bylo doporuceny, ale je to nejjednodusi zpusob a osobne me nenapada ani naznak toho jak to resit v htaccessu, precijenom ty adresy sou pokazdy jiny, musel bys tam dat podminku ze kdyz ta adresa obsahuje cestu k css tak ji prelozi na spravnou cestu, ale tim by ses pripravil o nekolik rout a zbavil se transparentnosti - ergo to neni reseni. Vicemene mi z principu prijde ze timhle zpusobem to nejde dobre vyresit, jedine zkusit dat cestu od lomitka, to ti zas udela problemy pri behu ve slozce. Takze za me jedine absolutni cesty jako dobry reseni
Mastodont
Profil
Zkusil jsi
RewriteCond %{REQUEST_FILENAME} !.(jpg|jpeg|png|gif|css)$
Pepan223ER
Profil *
Mastodont:
nefunguje

Ugo:
tag BASE nelze použít

Kajman_:
Nelze použít - již je web nasazen v v redakčním systému
Ugo
Profil
Mastodont:
tuhle podminku tam uz vicemene ma v tom !-f, mozna spis bohuzel protoze cesta by se lip dohledavala v phpku nez v htaccessu, ale opet by platilo omezeni ze s nekterejma routama to bude blbnout.

Pepan223ER:
v tom pripade ti nezavidim, regular neni kamarad ;) . musis prelozit asd/dsa/styl.css stejne tak jako asd/styl.css a zrovna tak asd/dsa/hgf/fgh/styl.css na jednu adresu, jinymi slovy bych do htaccessu dal neco jako RewriteRule .*/styl.css$ /styl.css :) ale az pridas soubor tak muzes pridavat zaznam .. cili to by byl humus a proto je treba doplnit poddotaz kterej ti dneska spravne nenapisu uz.. neco jako
RewriteRule ^.*/([^/].+\.)([a-zA-Z]{2,3})$ /$2/$1
Pepan223ER
Profil *
Ugo:
mno stále nic :-/
Ugo
Profil
to je jasny ten regular je spatne od a-Z, jak rikam to neni kamarad :) a jeste tam chybi [L] .. sam sem zvedav jak tohle napsat, doufam ze to nekdo da dokupy nez dojedu domu ;) jinak takhle nejak by to vypadalo kdyby byl ten regular funkcni (a kdo vi, treba nakonec neco i dela :D )

RewriteEngine On
RewriteRule ^.*/([^/].+\.)([a-zA-Z]{2,4})$ /$2/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ ?pg=$1&id=$2
Pepan223ER
Profil *
tak nějak vůbec žádná změna :-/
Kajman_
Profil *
Pepan223ER:
Nelze použít - již je web nasazen v v redakčním systému

Tak to je špatný redakční systém a nechte tedy adresy tak, jak byly funkční.
Pepan223ER
Profil *
Kajman:
mno to je možný ale nějaký řešení přes .htaccess musí bejt
Davex
Profil
Pepan223ER:
nějaký řešení přes .htaccess musí bejt
Ano je, Ugo ho už zmínil [#8] a souhlasím s ním, že je to humus, ale raději bych volil přesměrování na správnou verzi, aby se úplně nerozbilo kešování a fungovalo to alespoň trochu.

Podle čeho server pozná, že má něco poslat odjinud než se po něm chce? Podle něčeho se to musí rozlišit, třeba podle toho, že jsou všechny styly nebo obrázky v konkrétním adresáři.
Pepan223ER
Profil *
Davex:
to znamená, že podle tebe bych měl mít ty složky vytvořený a v tom nahraný všechny styly a všech milion obrázku?? :-D
Pepan223ER
Profil *
když se podívám sem, tak zde je to řešený, ale pro mne je to nefungující
Davex
Profil
[#15] Pepan223ER:
Server musí podle něčeho v adrese poznat, že to nemá nahrávat ze špatné adresy, kterou poslal prohlížeč, ale má pro to jít jinam. Pokud dáš třeba všechny styly do jednoho adresáře a obrázky do jiného, třeba i do podadresářů, tak by se podle začátku cesty dalo poznat, že se jedná o obrázek a má se pro něj sáhnout někam jinam.

Mám pro tebe jednoduchou radu - nepoužívej lomítka v pěkných adresách.
Pepan223ER
Profil *
Davex:
a co bych měl podle tebe používat?? :-D .... hvězdičky?? :-D

já nevim - všude je to řešený, na každym webu to funguje (i bez BASE tagu) takže nějaký řešení být musí!!
Davex
Profil
Pepan223ER:
a co bych měl podle tebe používat?? :-D .... hvězdičky?? :-D
Místo lomítek nějaký nerezervovaný znak. Třeba tečky nebo čárky?

takže nějaký řešení být musí!!
Několik rad už jsi dostal.
Pepan223ER
Profil *
Davex:
,,Několik rad už jsi dostal."
ale žádný použitelný v praxi!
Davex
Profil
Pepan223ER:
ale žádný použitelný v praxi!
Pokud budeš styly a obrázky připojovat ze špatných adres, tak nemůžeš čekat, že se to samo nějakým zázrakem opraví. Řešení podle [#2] a [#4] se v praxi běžně používá, takže rady použitelné jsou.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0