Autor Zpráva
pcmanik
Profil
Zdravím,

Zacinam sa hrat s mod_rewrite a hned som narazil na problem:
odkazy na webe su v tvare http://aaaa.sk/?p=rebricek
Chcel som ich teda prepisat do tvartu http://aaaa.sk/rebricek co sa mi aj podarilo, lenze sa mi nenacitavaju externe js a css skripty.

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^p=([^&]+)$
RewriteRule ^$ %1? [R=301,L,NE]
RewriteRule ^([^/]+)$ index.php?p=$1 [L,QSA]


Co mám zmeniť? Lebo z toho co som uz pocital som nic nenasiel. Dakujem.
Ugo
Profil
prohlížeč si při takovym přesměrování myslí že je ve složce /rebricek ...aspoň tak bych to vyjádřil ;) je teda nutný dávat adresy odkazů, stylů atp. absolutně (/xxx.js , http://aa.bb/xxx.js) nebo použít
<base href="http://aa.bb/">
href="xxx.js"
pcmanik
Profil
Ugo:
Dobre, ale preco to potom nefunguje ani na hlavnej stránke? jej sa nedavaju ziadne parametre a ani nieje v ziadnom priecinku.
Absolutne cesty nemozem vyuzit z dovodu, ze sa stranka bude v buducnosti presuvat a bolo by zbytocne komplikovane potom menit tu cestu. Este by sa to dalo riesit pomocou php, ale to mi pride zbytocne zlozite, myslim, ze treba len nieco prepisat v tom rewrite.
Ugo
Profil
Jo tak to bych musel vic rozumet regularum :D ale nepokousi se ti to ty soubory odkazat na index? co kdyz zadas do prohlizece primo jejich cestu? osobne mam htaccess resenej tak aby presmerovaval jenom adresy bez tecky, můžeš zkusit dát před do poslední přesměrování.. ale spíš nechám na zkušenějších ať poradí

RewriteCond %{REQUEST_URI} !(.*[.].*)
RewriteRule .* index\.php 
pcmanik
Profil
Ugo:
Ked to tam dam, nestane sa nic, len prestane fungovat pekna adresa.
Davex
Profil
pcmanik:
Všechny adresy, ve kterých se nevyskytuje lomítko, přepisuješ na skript. Dá se tedy předpokládat, že v cestě ke skriptům a stylopisům se lomítko nevyskytuje.

Obvykle se ještě k pravidlu přidává podmínka, aby se nepřepisovaly existující soubory.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ index.php?p=$1 [L,QSA]
pcmanik
Profil
Davex:
Dakujem, uz to funguje, vidim, ze sa tejto problematike budem musiet viac venovat.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0