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)