Autor Zpráva
Ivoš
Profil *
Potřeboval bych poradit s mod_rewrite. Co bych měl napsat do .htaccess pokud bych chtěl přepsat následující adresu:
http://www.neco.cz/index.php?nav=2

na adresu:
http://www.neco.cz/nav2.html
nebo na:
http://www.neco.cz/kontakt.html

Díky moc.
Petra
Profil
RewriteEngine on

RewriteRule ^nav([0-9]*)\.html$ /index.php?nav=$1

To s tím kontaktem nepůjde, jedině by se to přepisovalo natvrdo (tj. musely by se dát pravidla že 2 je kontakt, 3 produkty, atd...)
Ivoš
Profil *
díky moc. já sem si to myslel, že by to s kontaktem a produktama... muselo jít pevnýma pravidlama.
FantomX1
Profil
To Petra:
Prosim ta Peta, islo by to aj nejak takto?

RewriteEngine on

RewriteRule ^([a-z]*)\.html$ $1/index.php

Rozumies co mam na mysli vsak?
Proste ak otvorim nejaku stranku s html priponou tak mi v skutocnosti otvori priecinok podla nazvu stranky bez pripony a v nom stranku index.php da sa to? Lebo mne to fungovat nechce. Moze byt ta jednotka na prvej pozicii? Dakujem.
FantomX1
Profil
Aha, uz som na to prisiel. Treba zapisat.

RewriteEngine on
RewriteRule ^([a-z]*)\.html$ /$1/index.php
Petra
Profil
FantomX1: ehm... priecinok je ... adresář? :-)

Jednak před tím $1 by mělo být ještě lomítko (RewriteRule ^([a-z]*)\.html$ /$1/index.php), pak třeba když zadáš example.com/neco.html by to otevřelo example.com/neco/index.php. Ten index.php se tam ale snad ani psát nemusí, index soubor by to mělo načíst automaticky, mělo by teda stačit jen /$1/. V tom, že je jednička na prvním místě bych problém neviděla.

Jinak aby bylo jasno, já těm mod_rewrite taky houby rozumím :-)
FantomX1
Profil
Aha, oki, ale mozno by si este vedela poradit :). S tym /$1/ mas samozrejme pravdu, ale ak by tam bol index.htm tak by to mohlo otvorit to a nie PHP. CHcem sa ta spytat este na jednu vec. Ked chcem vsetkym php strankam na webe dat priponu .htm namiesto .php tak ako to mam spravit?

Pretoze ja osobne mam toto

RewriteEngine on
RewriteRule ^([a-z]*)\.htm$ %{DOCUMENT_ROOT}/$1.php

Ale vies co to spravi ked mam napriklad dany php subor v nejakom podradenom adresari? Otvori mi to stranku index.php ako stranku index.htm ale tu co sa nachadza v najvyssom adresari. A pritom toto

RewriteEngine on
RewriteRule ^([a-z]*)\.htm$ /$1.php

ma absolutne rovanky efekt ako to predchadzajuce, a preto sa ta pytam ze ci nevies nejaku premennu co sa vztahuje k danemu adresaru v ktorom sa stranka ma nachadzat, alebo to treba robit nejako pomocou regularnych vyrazov a potom sa vztahovat na nejaku inu premennu napriklad $2?

RewriteEngine on
RewriteRule ^([a-z]*/)?([a-z]*)\.htm$ /$1/$2.php
Dufam ze chapes aj toto druhe riesenie. Neviem ci funguje, ale ty na svojom webe to mas pomocou mod_rewrite a mas tam aj vnorene adresare, takze som si myslel ze by si mohla vediet ako na to. Dik.
Petra
Profil
FantomX1: Jsem sice moc nepochopila oč jde, ale dvě věci jsou jasné:

1. Přepisovat jen "php" na "htm" je myslím na nic. Vždyť na příponě php není nic špatného nebo ano?
2. Přepisovací pravidlo se tvoří pro každý jednotlivý "typ" URL vlastní.

Takže pokud je to v podadresáři, napiš třeba:
RewriteRule ^([a-z]*)/([a-z]*)\.htm$ /$1/$2.php
Toto téma je uzamčeno. Odpověď nelze zaslat.