Autor Zpráva
sunny
Profil
zdravím vás,

omlouvám se pokud se to tu už třeba řešilo, ale já jsem to nenašel. chtci poprosit o následující: na stránkách www.sakurai.cz běží web. url teď vypadají třeba takto http://www.sakurai.cz/vyvolavaci-automaty/heights-inca.php, ale já bych chtěl, aby vypadaly takto http://www.sakurai.cz/vyvolavaci-automaty/heights-inca, tedy bez koncovky.

a ještě by mě zajímalo, zda jde přes .htaccess docílit výše uvedené struktury url (http://www.sakurai.cz/vyvolavaci-automaty/heights-inca.php) aniž bych na serveru musel tvořit adresáře "vyvolavaci-automaty" apod. snad jsem to napsal srozumitelně. mnohokrát dík.
Leo
Profil
To, co hledate je prepisovani, a mod_rewrite v Apachi - Yuhu ma na www.jakpsatweb.cz o tom par peknych navodu.. Leo
sunny
Profil
vím, opravdu jsem hledal, ale bohužel jsem to z toho moc nepochopil.
Leo
Profil
Jednodusseji a nazorneji nez je to tady

http://www.jakpsatweb.cz/server/mod-rewrite.html

Uz to popsat opravdu nejde, verte mi. Leo
sunny
Profil
tak opravdu to co potřebuju sem tam nenašel, ani v příkladech. je tam sice článek "přejmenování dynamických adres na statické", ale to není můj případ. já potřebuju odstranit koncovku .php a popřípadě upravit adresářovou strukturu, jak píšu výš.
Leo
Profil
Tak pokracujte pres odkazy co tam jsou :-) Hotove reseni na vas pripad tam neni, musite pochopit princip, hlavne ty regularni vyrazy, Leo
Kajman_
Profil *
Zkusi bych to takto...

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !rw=1
RewriteRule ^(.+/.+)\.php$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+/.+)$ $1.php?rw=1 [L,QSA]

Pokud budou posílána data přes post na staré adresy, tak nedojdou.
sunny
Profil
Kajman_ ... nefunguje to. co myslíš tím Pokud budou posílána data přes post na staré adresy, tak nedojdou..

jsem v tomhle celkem začátečník, tak sorry za blbý dotazy.
sunny
Profil
aha, funguje, ale až v té poslední kategorii. v hlavním rootu ne. chtěl bych, aby to vypadalo všude stejně.
Kajman_
Profil *
v hlavním rootu ne

Tak si smažte lomítka.

co myslíš tím Pokud budou posílána data přes post na staré adresy, tak nedojdou.

Přesně to, co jsem napsal. Pokud budou formuláře odkazovat na .php a budou používat metodu POST, tak se data nejspíše ztratí.
sunny
Profil
napsal jsem to takto:

RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} !rw=1
RewriteRule ^(.+/.+)\.php$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+/.+)$ $1.php?rw=1 [L,QSA]

RewriteCond %{QUERY_STRING} !rw=1
RewriteRule ^(.+)\.php$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ $1.php?rw=1 [L,QSA]

a už to funguje i v rootu, ale nefunguje je to, když je na serveru vytvorena slozka, ktera se jmenuje stejne jako soubor. viz např www.sakurai.cz/ctp.php. na serveru je právě vytvořený adresář "ctp" a něm pak jednotlivé produkty. Jde to nějak obejít? dík.
Kajman_
Profil *
Vypnout mod_dir.
sunny
Profil
:-( hm, připadám si už jak blbec. hledal jsem na netu jak ten mod_dir vypnout, ale nenašel jsem. jen nějaké modifikace. můžu tě poprosit? nebo máš třeba někde nějaký srozumitelný návod na .htaccess? díky
Kajman_
Profil *
DirectorySlash Off
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} !rw=1
RewriteRule ^(.+)\.php$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ $1.php?rw=1 [L,QSA]

nebo máš třeba někde nějaký srozumitelný návod na .htaccess

http://httpd.apache.org/docs/2.0/howto/htaccess.html

a pak dokumentace jednotlivých modulů

http://httpd.apache.org/docs/2.0/mod/
Anonymní
Profil *
dobrý, takhle to funguje. zkusim trochu počíst, ale fakt z toho nejsem moc chytrej. taky přiznávám že mám dost práce a nedokážu se na to soustředit. ještě jeden dotaz. někde jsem se dočetl, že je dobré používat na konci url lomítka, takže by to nemělo vypadat takto: .../vyvolavaci-automaty/heights-inca, ale takto ...vyvolavaci-automaty/heights-inca/ Je na tom něco nebo je to jedno?
sunny
Profil
jo málem bych zapomněl. ...a jak je s tou adresářovou strukturou, jak jsem psal v prvním příspěvku? jde to také nějak udělat přes .htaccess nebo si musim manuálně vytvořit všechny složky a do nich pak nandat příslušné soubory?
Leo
Profil
"a jak je s tou adresářovou strukturou, jak jsem psal v prvním příspěvku? jde to také nějak udělat přes .htaccess nebo si musim manuálně vytvořit všechny složky a do nich pak nandat příslušné soubory?"

A precetl jste si vubec sam neco o mod_rewrite, treba ten clanek co psal Yuhu a nebo pokracovani od Kajmana? Leo
sunny
Profil
přečetl. jediné čím by to možná šlo udělat je to "podstrkávání obsahu", už sem to zkusil a funguje to, ale nevím, jestli je to ta správná volba. navíc bych nejspíš musel vytvářet pro každou stránku zvlášť pravidlo, takže asi 30 pravidel.
Leo
Profil
"ale nevím, jestli je to ta správná volba"

Je.

"navíc bych nejspíš musel vytvářet pro každou stránku zvlášť pravidlo, takže asi 30 pravidel"

Prave ze nemusel, regularni vyraz postihuje danou strukturu retezce, ne jeho doslovnou hodnotu... Leo
sunny
Profil
no dobře, ale jak vytvořim pravidlo stejné pro všechny, když ta struktura bude pro určité stránky jiná. vždyť se podívej na www.sakurai.cz, procházej stránkama a koukej na drobečkovou navigaci. přesně podle ní chci aby byla ta struktura.
Leo
Profil
Ja jsem tam nic slozityho nenasel... Leo
sunny
Profil
tak si buď nerozumíme nebo jsem opravdu úplně blbej. nechápu, jak může být společné pravidlo pro:

"www.sakurai.cz/produkty-ofset/sire-52cm/oliver-52e2"

a pro:

"www.sakurai.cz/doplnky/ctp/mako-2"
Leo
Profil
S tim si regularni vyrazy a Kajman urcite poradi :-) Leo
Kajman_
Profil *
Stačí mít jeden soubor, kterému dáte v parametru celou cestu (nebo se na orginální požadavek koukne sám) a on vygeneruje patřičnou stránku. Tohle je věc návrhu, rewrite s tím nemá problém. Ve Vašem případě bych nechal klidně staré .php adresy a dál to neřešil. Když nemáte čas si přečíst manuál, tak težko najdete čas na předělání systému celého webu.
sunny
Profil
hm, stejně dík. snad se ještě ozve.
Leo
Profil
"snad se ještě ozve"

Kdo?
habendorf
Profil
"snad se ještě ozve"
Kdo?


Kajman_. Je to 21 vteřin po sobě.
sunny
Profil
jj, taky sem si všiml. smazat už to nešlo.
sunny
Profil
pánové prosimvás mohli byste mi to pravidlo napsat? včera sem to zkoušel celé odpoledne, ale akorát jsem si to celé rozkopal :-(. děkuji.
Kajman_
Profil *
http://www.jakpsatweb.cz/server/mod-rewrite.html#promenne

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ skript-co-vsechno-zpracuje.php?url=$1 [L,QSA]
Toto téma je uzamčeno. Odpověď nelze zaslat.

0