mod_rewrite - přepisování adres
12 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Dobrý den, nevím, jak na to, mohl by mi někdo konkrétně poradit? Tím myslím přímo napsat, jak to má vypadat, neb články a dokumentace mi nepomohla :-)) Potřebuji, aby na mých stránkách všechny adresy kočící .html končily jen lomítkem, tedy například http://zoopraha-pruvodci.wz.cz/novinky.html http://zoopraha-pruvodci.wz.cz/ankety.html bude vypadat http://zoopraha-pruvodci.wz.cz/novinky/ http://zoopraha-pruvodci.wz.cz/ankety/ a tak dále pro všechny stránky. Mohl by mi někdo prosím poradit? Děkuji.
-
vytvoř soubor .htaccess do něj naházej toto: RewriteEngine On RewriteRule ^novinky/$ /novinky.html [L,QSA] RewriteRule ^ankety/$ /ankety.html [L,QSA] nebo případně by to mělo jít obacně (abys nemusel vypisovat pro vše, co tam máš) nějak takto: RewriteEngine On RewriteRule ^(.*)/$ /$1.html [L,QSA] pozor v tomto případě ale na to, že by ti to mohlo překládat i nějaké skutečné adresáře, které bys překládat nechtěl... musel bys pak třeba specifikovat, že to nesmí obsahovat nějaké znaky a pod...
-
neni to moc zlozite? ked som spravne pochopil mas k tomu zdrojak tak preco to neorvoris v notepade -upravi -nahradit -najít: ".html"(ziadna medzera predtim ani za tim) -mahradit: "/"(takisto bez medzery)(a uvodzoviek) mozes dat "nahradit vse" alebo "nahradit" a po jednom potvrdzovat kebi tam este niekde bol retazec: ".html"
-
:-)))) :-)))) Tak nevím, jestli to bylo myšleno jako fór :-)) Zřejmě nevíš, k čemu mod rewrite je. Kdybych si všude odmazal .html, jak by prohlížeč poznal, že se jedná o html soubory, co? :-) Navíc tohle je hlavně o nezávislosti na technologii...v momentě, když přejdu na php, to uživatel vůbec nemusí díky mod_rewrite poznat a já nemusím nikde nic měnit.
-
Nefunguje to ani tak, ani tak...když jsem to tam nahrál, tak se vše chová úplně stejně jako předtím.
-
Tak ne, asi to funguje, ale ne tak, jak by mělo...asi jsem v tom úplný amatér... když dám třeba http://zoopraha-pruvodci.wz.cz/hlavni/ tak se mi obsah zobrazí, ale zobrazí se to bez css. A navíc, když bych pak na té stránce klikl na jakýkoliv odkaz, tak se to tváří jako adresář tedy, kdybych pak přešel třeba na sekci ankety, odkazuje to na http://zoopraha-pruvodci.wz.cz/hlavni/ankety.html Takže mám někde chybu já? Musím to nějak vyřešit s tím CSS? A nebo se dokonce musí všechny odkazy v html souborech přepsat na ty bez .html? (Pokud to tak je, tak jsem zřejmě nepochopil smysl a omlouvám se uživateli 7591) :-)
-
ne to ja som nepochopil mislel som ze sa jedna o jeden zdroják
-
odkazy bys měl samozřejmě pepsat na tvar, který chceš používat, tudíž zřejmě bez .html..... a taky by se hodilo je psát absolutně, teda ne jen href="./ankety/" ale spíše href="http://tvujweb.wz.cz/ankety/"....
-
mod_rewrite je vesměs přesměrování adresy na daný soubor ještě před tím, než apach začne zkoumat, jestli soubor existuje ... používá se to často když máš stránku typu /index.php?page=uzivatele&id=1, tak to je pro SEO a uživatele dost ošliké, tak si to pomocí mod_rewrite předěláš na /uzivatele/jara-krupicka/ například. v .htaccess si nastavíš patříčný rewriterule a tam, kde máš tagy pro odkazy, takže <a href="" > tak tam napíšeš přesně tu adresu kterou potřebuješ, v tomhle případě <a hre="/uzivatel/jara-krupicka/">, ale jinak nic. mod_rewrite tě pak akorát přesměruje na dané proměné, jak si to nastavíš v .htaccess. RewriteRule co_presměrovat kam_přesměrovat [parametry] nemusí se upravovat žádné koncovky souborů, nic takového, akorát přepsat odkazy, aby ti to správně zobrazovalo ... a pokud ti to vyhazuje css styly, obrázky ap, tak stačí upravit relativní adresu (absolutní potřeba není), takže např. máš <img src="./images/logo.gif">, tak to by se nezobrazilo, tak akorát připíšeš tečku, aby to bylo do kořenového adresáře ... <img src="../images/... o mod_rewrite doporučuju přečíst nějaký články na netu
-
Všem bych rád velice poděkoval. Přepsal jsem relativní adresy a vše funguje tak, jak má. Díky moc, opravdu!
-
Tak a nyní nastává doba php :-) rád bych tohleto měl teď i pro stránky s příponou .php a zároveň pro .html Jak na to prosím? :-) Stačilo by tedy takhle? RewriteEngine On RewriteRule ^(.*)/$ /$1.html [L,QSA] RewriteRule ^(.*)/$ /$1.php [L,QSA]
-
to je blbost, protože to všechno přesměruje na *.html a pokud ten nebude existovat, tak to vyhodí chybu 404. Jediná možnost je všechny soubory přejmenovat na .php (což je ostatně to nejlepší, co člověk může udělat)