Autor Zpráva
adolph
Profil *
ahoj, potřeboval bych poradit s následujícím "zadáním" - věřím, že to pro vás nebude nic složitého! ;)

1. domena.cz -> www.domena.cz - včetně jakékoliv další cesty za tím tzn. i domena.cz/neco -> www.domena.cz/neco

2. doplnění kocového lomítka - vždy. nebudu používat soubry a přípony, není to tedy nutné ošetřovat, ale chtěl bych, aby bylo možné předávat parametry - třeba aby fungovalo www.domena.cz/neco/?parametr=hodnota

3. a to hlavní: aby se jakákoliv cesta "rozsekala" předala do parametrů indexu. tedy např. www.domena.cz/ovoce/jablka/cervena/?id=5&detail=ano aby se přepsalo na www.domena.cz/index.php?p1=ovoce&p2=jablka&pc=cervena&id=5&detail=ano .... :) délka (resp. "hloubka") cesty bude vždy různá. je tedy možné i www.domena.cz/ovoce/?nejaky_parametr=nejaka_hodnota

ufff, snad jsem to popsal smysluplně. díky moc!
Kajman_
Profil *
nebudu používat soubry a přípony

Ani žádné obrázky a styly?
Peca
Profil
1. řekl bych, že "www" v tom nehraje velkou roli.
2. parametry fungují i bez koncového lomítka ...cz/neco?parametr
3. osvědčila se mně následující konstrukce:
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)$ index.php?p1=$1&p2=$2&p3=$3 [QSA,L]
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)$ index.php?p1=$1&p2=$2 [QSA,L]
RewriteRule ^([^(/\.)]+)$ index.php?p1=$1 [QSA,L]
Soubory s příponou (vlastně jakoukoliv cestu s tečkou) to nepřesměrovává, takže na styly, obrázky apod. je vhodné dávat odkazy ve formátu "/img/obr1.jpg", aby fungovali ve všech adresářích.
Lukáš M
Profil
Kajman_
to vlastně ano ;) ale všechny budou v jednom adresáři, pokud to pomůže?

Peca
díky, zkusím ;)
Lukáš M
Profil
Peca
zkusil jsem, funguje to celkem fajn až právě na ty (i když sice ne tak zásadní) body 1 a 2. sice mi (asi nastavením serveru) fuguje verze s i bez www na začátku, ale chtěl bych, aby se automaticky přesměrovávalo z verze bez na verzi s. stejně tak aby se stránky bez lomítka na konci automaticky přepsali na verzi s lomítkem. teď to dokonce je tak, že pokud koncové lomítko uvedu, dostanu 404.
Martin Kuželka
Profil
Zkus tohle:
RewriteCond %{HTTP_HOST} ^example.com

RewriteRule (.*) http://www.example.com/$1 [R=301,QSA,L]
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/?$ index.php?p1=$1&p2=$2&p3=$3 [QSA,L]
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/?$ index.php?p1=$1&p2=$2 [QSA,L]
RewriteRule ^([^(/\.)]+)/?$ index.php?p1=$1 [QSA,L]
Lukáš M
Profil
Martin Kuželka
díky, martine, funguje to už takřka dokonale, jen v případě, že v adrese chybí koncové lomítko, ale za to je tam parametr, tak se tam lomítko nepřidá. prostě bych ještě chtěl - pokud je to možné - aby:

www.domena.cz/neco/neco?parametr=hodnota

šlo na:

www.domena.cz/neco/neco/?parametr=hodnota

samozřejmě totéž i bez www, ale to už je ošetřeno výše, pokud tomu aspoň trochu začínám rozumět. :)
Kajman_
Profil *
Rešení doplňování lomítek je např. v tomhle článku
http://interval.cz/clanek.asp?article=3985
Scuby
Profil *
Zdravim vsechny, jsem uplny zacatecnik... Mam maly dotazek:

Jak na localhostu, kde mam testovaci web uvest do provozu MOD rewrite (mam snad vse v apachovi nastavene podle navodu na webu spravne).
Stranky jsou na http://localhost:8080/muj-web/. A pro nacitani obsahu vyuzivam index.php?stranka=nabidka +/- nejake dalsi parametry v GETu jako &lokalita=, &letovisko= atd... pocet se meni. Dale mam index.php?stranka=vyhledavani */- zase dalsi parmetry v GETu jako &loklaita=, &letovisko=, &pocet-lidi= atd...
Jde nejak pro tento pripad nadefinovat mod rewrite a muze mi nekdo ukazat, jak by mel dany kod v .htaccess vypadat.

mam na mysli:
kdyz dam link: http://localhost:8080/muj-web/nabidka/ -- aby nabehlo index.php?stranka=nabidka (index.php je v adresari muj-web),

kdyz http://localhost:8080/muj-web/nabidka/pardubicko/ -- aby nabehlo index.php?stranka=nabidka&lokalita=pardubicko,

a kdyz : http://localhost:8080/muj-web/vyhledavani/ --aby nabehlo index.php?stranka=vyhledavani

Diky

Btw. jak zjistim, ze mod rewrite opravdu na apachovi bezi?
Kajman_
Profil *
Btw. jak zjistim, ze mod rewrite opravdu na apachovi bezi?

vytvořit soubor .htaccess v kořenu webu a do něj dát...

RewriteEngine On
RewriteRule .* http://www.jakpsatweb.cz/

Jinak základ by mohl vypdat takto:
#.htaccess v adresari muj-web
RewriteEngine On
RewriteBase /muj-web/
RewriteRule ^([^/])/$ index.php?stranka=$1 [L,QSA]
RewriteRule ^([^/])/([^/])/$ index.php?stranka=$1&lokalita=$2 [L,QSA]
Scuby
Profil *
Dekuji za rychlou odpoved... Pravdepodobne musim mit nejakou chybu v nasteveni apache... jelikoz kdyz jsem vytvoril soubor .htaccess s:

RewriteEngine On
RewriteRule .* http://www.jakpsatweb.cz/

Tak to nic neprovedlo :-( nastaveni jsem provadel podle nejakeho clanku na radekhulan.cz. nemuze to byt i tim ze Apache jede na portu 8080 ?
Toto téma je uzamčeno. Odpověď nelze zaslat.

0