Autor | Zpráva | ||
---|---|---|---|
Jirin Profil * |
#1 · Zasláno: 8. 5. 2005, 20:26:03
Zdravim,
potrebuji poradit s mod_rewrite Jedna se o tuto adresu: http://www.f1-news.cz/8652.html kdyz potom, projedes odkazy nahore nebo nalevo, tak tam je take to cislo.html ale musi tam byt jen www.f1-news.cz bez toho cisla a druha otazka, jak udelat abych mohl nejak predavat i to jak automaticky skoci za tu adresu - myslim to s=1&m=1 ten kod mam takto: RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.f1-news\.cz RewriteRule ^(.*)\.html$ index.php?clanek=$1 [L,QSA] |
||
centi Profil |
#2 · Zasláno: 8. 5. 2005, 20:41:53
cislo.html
Ako potom chceš volať jednotlivé podstránky, keď tam nesmie byť názov tej stránky (8652.html napríklad)? :-) |
||
Yuhů Profil |
#3 · Zasláno: 8. 5. 2005, 21:32:26
jak zrušit to 8652:
DirectoryIndex 8652.html index.html mod_rewrite je v tomto případě kanón na vrabce. Druhé otázce absolutně nerozumím. Nepomohlo by smazat ten dolar? Taky nevím, proč tam je to RewriteCond. Myslím, že by to šlo bez toho, ne? |
||
VitaZ Profil |
#4 · Zasláno: 8. 5. 2005, 21:41:31 · Upravil/a: VitaZ
Musíš mít v odkazu to "8652" ? Pokud si všímám, máš to číslo u všech odkazů v horním menu stejné. Pokud chceš předávat víc parametrů, dej je do statické adresy všechny před .html, např. takto:
http://www.neco.com/stranka-8652-101-202.html = http://www.neco.com/stranka.php?prom_1=8652&prom_2=101&prom_3=202 Zápis v .htaccess by pak vypadal asi takto: RewriteRule ^stranka-(.*)-(.*)-(.*)\.html$ /stranka.php?prom_1=$1&prom_2=$2&prom_3=$3 [L,QSA] V jednom souboru .htaccess můžeš mít samozřejmě několik pravidel (píšou se na nové řádky pod sebe) pro různé varianty odkazů (1 předávaná prom, 2 prom atd..) |
||
Jirin Profil * |
#5 · Zasláno: 9. 5. 2005, 17:53:45
Diky vsem, uz se mi to podarilo castecne vyresit, to s a m uz jede, ale porad mi tam dela neporadek to, ze v tech odkazech mi to vsude prepisuje, misto klasickeho index.php a co ma byt tam je vzdy ta adresa z adresniho radku a pak teprve co ma byt.
|
||
Jirin Profil * |
#6 · Zasláno: 9. 5. 2005, 19:34:47
|
||
VitaZ Profil |
#7 · Zasláno: 9. 5. 2005, 20:40:58
Jirin
Zdá se mi, že to s těmi odkazy pěkně mastíš. Proč má ten odkaz takový divný tvar? Proč je v odkazu vždy to 8664-1-1? Nevím, jestli přesně chápeš co má vlastně mod_rewrite dělat? Princip mod_rewrite je ve své podstatě velmi jednoduchý, ale problém je v tom, že zatím ve všech článcích, které jsem o tom četl na webu, je mod_rewrite popisován složitě a trochu divně:-( Zkusím Ti to trochu srozumitelně nastínit: 1) Máš web s odkazy např. ve tvaru /index.php?promena1=hodnota1&promena2=hodnota2, protože se Ti takový tvar adresy nelíbí (např. kvůli SEO), je potřeba převést adresu do statického tvaru. 2) Do souboru .htaccess vložíš následující pravidlo: RewriteEngine On RewriteRule ^stranka-(.*)-(.*)\.html$ /index.php?promena1=$1&promena2=$2 [L,QSA] 3) zkusíš si zobrazit stránku /stranka-hodnota1-hodnota2.html, tato stránka se na tvém webu nikde nenachází, ale server Apache ví (má to přikázáno v .htaccess), že když mu příjde požadavek na takovou stránku, má místo ní zobrazit stránku /index.php?promena1=hodnota1&promena2=hodnota2. Protože v hranaté závorce za pravidlem není stanoveno přesměrování R=301, zůstane v adresním řádku prohlížeče pořád adresa /stranka-hodnota1-hodnota2.html a návštěvník vůbec nemusí mít tušení, že je mu podsouvána jiná stránka. Princip mod_rewrite tedy nelze chápat jako přepisování dynamických stránek na statické, jak k tomu trochu zavádějícím způsobem svádí některé články (na Sově či Rootu). Nejde o to, jak změnit např. adresu /index.php?promena1=hodnota1&promena2=hodnota2, ale o to, co udělat, když někdo zavolá stránku /stranka-hodnota1-hodnota2.html. |
||
Jirin Profil * |
#8 · Zasláno: 9. 5. 2005, 20:56:16
Děkuji za odpověď, toto vse teoreticky chapu, vlastne mi to i funguje. Tuto adresu, co tam mam ted je jen zacatek toho skladani, pak tam bude samozrejme hlavne ten nadpis clanku a za nim budou muset tyto cisla byt, a to z prosteho duvodu, potrebuji tam mit id (to ctyrmistne cislo), sekci a podskeci menu. (to jsou ty dve cisla)
Ted v teto fazi tam ma vse bez toho nadpisu, ten dam nakonec. A jde o to: zadam: http://www.f1-news.cz/8664-1-1.html a pomoci tohoto pravidla: RewriteRule ^([0-9]*)-([0-9]*)-([0-9]*)\.html$ /index.php?clanek=$1&s=$2&m=$3 [L,QSA] mi to podsoupne stranku : http://www.f1-news.cz/index.php?s=1&m=1&clanek=8664 Vse je ok, ale pokud projedu odkazy, ktere jsou na strance, tak mi to tam hodi tu prepsanou stranku a za ni teprve nejake ty promenne. (Zatim nemam ty odkazy predelane pro tento mod_rewrite). Doufam, ze jsem t osrozumitelne a ne moc dlouze;) nastinil. Pokud bys mel ICQ, muzes se mi ozvat na: 255896469 . Diky |
||
Jirin Profil * |
#9 · Zasláno: 9. 5. 2005, 21:23:55
Me se zda, ze mi to jakoby prepisuje ten index v odkazech za to na co to prelozilo:(
|
||
Kajman Profil * |
#10 · Zasláno: 10. 5. 2005, 10:05:42
Musís si upravit všechny odkazy. Pokud použiješ href="?cosi" tak prohlížeč správně požaduje stránku http://www.f1-news.cz/8664-1-1.html?cosi a už se ti tam parametry perou.
Tedy odkazy typu "?cosi" změnit všude v kódu na "index.php?cosi" nebo třeba "/?cosi". Případě rovnou na cosi.html. |
||
Jirin Profil * |
#11 · Zasláno: 10. 5. 2005, 15:13:37
Aha, tka to bude pravdepodobne ono, diky moc!!
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0