Autor | Zpráva | ||
---|---|---|---|
Tomáš Čáp Profil * |
#1 · Zasláno: 28. 11. 2007, 08:01:50
Zdravím, potřeboval by jsem radu k mod_rewrite.
1) Rád bych přesměroval index.php?id=5&lang=1 do např. cz/kontakt Byl by někdo tak ochotný a pomohl mi s tím? V databázi již mám vytvořený sloupec, kam se ukládá friendly_url z názvu dokumentu, jen to potřebuji nějakým způsobem nechat přesměrovávat i do .htaccess. Je však nutné, aby fungovaly i ty staré odkazy, kvůli tomu že si $_GET bere idčko a lang 2) Kdyby mi ještě někdo napsal, jak taky místo /kontakt.php předělat odkazy na /kontakt/ byl bych mu velice vděčný!! Děkuju všem za pomoc |
||
Joker Profil |
#2 · Zasláno: 28. 11. 2007, 10:15:55
Tomáš Čáp
Rád bych přesměroval index.php?id=5&lang=1 do např. cz/kontakt Tak to půjde dost blbě. Pokud nemám k dispozici nic jiného než text adresy, jakým způsobem se doberu k tomu, že cz je zrovna 1 a kontakt je zrovna 5? Šlo by přesměrovat například cz/kontakt třeba na: index.php?id=kontakt&lang=cz. |
||
djlj Profil |
#3 · Zasláno: 28. 11. 2007, 12:00:46
Rád bych přesměroval index.php?id=5&lang=1 do např. cz/kontakt
Ručně vepsat do .htaccess. Kdyby mi ještě někdo napsal, jak taky místo /kontakt.php předělat odkazy na /kontakt/ byl bych mu velice vděčný! Prohledej tuto diskusi, řešení tu jsou stovky. |
||
DFly Profil |
#4 · Zasláno: 28. 11. 2007, 16:45:31
no vidis - a takhle podobne by to mohlo vypadat v datech pro rewrite v .htaccess
index.php?id=5&lang=1 cz/kontakt staci kdyz si budes tento soubor generovat v tomto duchu napr. pri zalozeni nove stranky, abys to nemusel delat rucne a kontroluj pro jistotu unikatnost friendly_url "stare" odkazy ti samozrejme budou fungovat stale a pokud pouzijes parametr QSA tak muzes klidne k friendly_url pridavat i dalsi GETy a bude to vypadat takto cz/kontakt?test=ABC index.php?id=5&lang=1&test=ABC |
||
DFly Profil |
#5 · Zasláno: 28. 11. 2007, 16:50:17
ad2) predelat /kontakt.php na /kontakt/ nemam moc v oblibe, museji se vsechny odkazy na webu udelat s / na zacatku cesty
to uz radeji nechavam (vestlinou vzdy obe) /kontakt nebo /kontakt.html |
||
Joker Profil |
#6 · Zasláno: 28. 11. 2007, 17:08:41
djlj, DFly
Pravda, to je asi jediná možnost, jak dosáhnout, co Tomáš Čáp chce, ale já bych raději zkusil upravit zadání, než mít v .htaccess něco takovéhoto: RewriteRule ^cz/hlavni$ %{DOCUMENT_ROOT}/index.php?lang=1&id=1 [L,QSA] RewriteRule ^en/main$ %{DOCUMENT_ROOT}/index.php?lang=2&id=1 [L,QSA] RewriteRule ^de/hauptsite$ %{DOCUMENT_ROOT}/index.php?lang=3&id=1 [L,QSA] RewriteRule ^cz/druha$ %{DOCUMENT_ROOT}/index.php?lang=1&id=2 [L,QSA] RewriteRule ^en/second$ %{DOCUMENT_ROOT}/index.php?lang=2&id=2 [L,QSA] RewriteRule ^de/zweite$ %{DOCUMENT_ROOT}/index.php?lang=3&id=2 [L,QSA] RewriteRule ^cz/treti$ %{DOCUMENT_ROOT}/index.php?lang=1&id=3 [L,QSA] (...) ...přijde mi to ujeté, pokud něco jen minimálně odlišného jde udělat jedním řádkem. staci kdyz si budes tento soubor generovat Taky jsem nad něčím takovým u jednoho webu přemýšlel, ale nakonec jsem si to rozmyslel. Nelíbí se mi na tom, že pokud by přegenerování z nějakého důvodu selhalo, přestane celý web fungovat. A taky je daleko závažnější otázka bezpečnosti- stačí aby skript neodchytil nějakou chybu (či úmyslný hack) a může to mít fatální následky. |
||
DFly Profil |
#7 · Zasláno: 29. 11. 2007, 23:40:56
Joker
samozrejme - zalezi na typu webu RewriteRule ^([cz|en|de])/([a-z0-9])$ %{DOCUMENT_ROOT}/index.php?lang=$1&page=$2 [L,QSA] se da ve vestsine webu pouzit (s kontrolou zda ta stranka existuje) napriklad tam kde neni nutno tajit ruzna ID neni probem kombinovat: tiskova_zprava_120, denni_report_2007_11_29 regulary toho snesou hodne :-) ale tento styl vyuzivam pri vicejazycnych webech takto: RewriteRule ^druha$ %{DOCUMENT_ROOT}/index.php?lang=1&id=2 [L,QSA] RewriteRule ^second$ %{DOCUMENT_ROOT}/index.php?lang=2&id=2 [L,QSA] RewriteRule ^zweite$ %{DOCUMENT_ROOT}/index.php?lang=3&id=2 [L,QSA] jazyk webu se vezme primo z friendly url pokud je nastaveno, v pripade RewriteRule ^home$ %{DOCUMENT_ROOT}/index.php?id=1 [L,QSA] pak beru $lang z cookie nebo default a pokud se nenadefnuje $id, tak to jde na home a pokud e $id neexistjici tak 404 |
||
Časová prodleva: 16 let
|
0