cauko. robim si blog a adresy mam v tvare clanky.php?id_clanku=1 atd. chcel by som si ale spravit take pekne adresy ako pouziva napr. fikcia.sk, alebo http://dailyfreegames.com/. cize nazov-clanku.html. viem, ze je to robene zrejme cesa .htaccess, ale ako? poradite niekto? dik ;)
Místo id ve formě čísel se bude používat název, nejlip bez diakritiky a s pomlčkama místo mezer. (A to .html bych tam necpal, nechal bych tu adresu bez přípony, je to vcelku rozumný doporučení w3c.)
Adresy pak budou vypadat třeba takhle:
/clanky/kun-kopl-jezdce
/clanky/starosta-spadl-do-studne
A v .htaccess bude:
RewriteEngine On
RewriteCond %{REQUEST_URI} clanky
RewriteRule ^clanky/(.*)$ /clanek.php?nazev=$1
A skript /clanek.php pak bude volán třeba:
/clanek.php?nazev=kun-kopl-jezdce
Zbytek je asi už v poho.
(doufám, že tam nemam nějakou chybku, kdyžtak mě někdo opravte plz)
btw v tom .htaccess to má přibližně tenhle význam:
Zapni Rewrite Engine
V případě, že je volána adresa obsahující výraz "clanky"
Vezmi tu část adresy, která je za "clanky/" až do konce adresy, a "podstrč" návštěvníkovi dokument na adrese /clanek.php?nazev=$1, kde $1 je ta vyseparovaná část adresy
diky velmi pekne; som sa s tym hodinu 'pasoval'(a pocas minuleho mesiaca tiez par hodin na podobnym riesenim) a nevedel som prist, ze kde je problem, ze mi to nejde.problem bol v tom, ze za %{DOCUMENT_ROOT} som stale zabudol na to, ze blog nemam na uvidnej stranke, ale az v podadresari ;)
prikladam moju podobu Tvojho riesenia ;)
RewriteEngine On
RewriteCond %{REQUEST_URI} articles
RewriteRule ^articles/(.*)$ %{DOCUMENT_ROOT}/blog/translator.php?name=$1 [L,QSA]
etse raz dik :)
No sousel sem to. Funguje to, ale mam problem z obrazkami (take soubormi jako .css) na webu - nenactou se. Protoze se rped jejich puvodni adresu:
mujweb.com/design/bla.jpg
vlozi ta cast z htaaccess:
mujweb.com/clanky/design/bla.jpg
---> a ja obrazky a css subory nemam ve foldru "clanky"
Proc ten rewrite mode meni take url souboru v dokumentu?
v htaccess mam toto:
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_URI} dwp
RewriteRule ^dwp/(.*)$ /index.php?dwp=$1
A odkazujem napriklad:
mujweb.tld/dwp/prvni-stranka
---> tohle mu funguje na souboru index.php se mi nacte prvni-stranka pomoci $_GET["dwp"]
Jenze obrazky a jine soubory (jak css) se nanactou, protoze jejich url je zmenena na
mujweb.tld/dwp/style.css
a ja ten css mam primo v rootu, ne v "dwp" jak to ten mod rewrite prehodi
Problem je v tom ze ja nechci adresovat "mujweb.tld/dwp/prvni-stranka"
ale radeji:
"mujweb.tld/prvni-stranka"
a zavolalo by to:
"mujweb.tld/index.php?dwp=prvni-stranka"
Nevim jak upravit ten htaccess, aby mi to takhle fungovalo. Da se to tak vubec?
<HTML>>>Nevim jak upravit ten htaccess, aby mi to takhle fungovalo.
RewriteRule ^(.*)$ /index.php?dwp=$1 [L,QSA]
>>problem z obrazkami (take soubormi jako .css) na webu - nenactou se
Při použití mod_rewrite k nim musíš ty cesty mít absolutní nebo od rootu.</HTML>
tak tohle:
DirectoryIndex index.php
RewriteEngine On
RewriteRule ^(.*)$ /index.php?dwp=$1 [L,QSA]
Mi dava v prohlizeci:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
<HTML>RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?dwp=$1 [L,QSA]</HTML>
Dalo by sa este vyresit adresovanie:
Link 1.: "mujweb.tld/A/prvni-stranka-v-casti-a"
nebo
Link 2.: "mujweb.tld/B/nejaka-stranka-v-casti-b"
Aby mode rewrite podhodilo:
Podhoden Link 1.: "mujweb.tld/index.php?part=A&page=prvni-stranka-v-casti-a"
nebo
Podhoden Link 2.: "mujweb.tld/index.php?part=B&page=nejaka-stranka-v-casti-b"
Uz se s tim peru 2 dni a porad zadnej vysledek :-( Hlavne mam problem kuli tomu, ze prvni cast za tld/ se v odkazich porad meni od A az po D a v tom RewriteRule to nevim nejak podchytit
<HTML>RewriteRule ^(.*)/(.*)$ /index.php?part=$1&page=$2 [L,QSA]</HTML>