Autor | Zpráva | ||
---|---|---|---|
Tomashekk Profil |
#1 · Zasláno: 15. 1. 2011, 21:56:05
Pročetl jsem si spousty vláken a dokonce i článků, ale tuto problematiku jsem nepobral.
Jde mi o to, jak udělat pěkné url například z této index.php?page=modules/user/clanek a nebo z této http://mops.cz/index.php?page=clanky&topic=info_o_plemeni&story=68 (u této, to už vůbec nechápu) |
||
Marek88 Profil |
#2 · Zasláno: 15. 1. 2011, 22:06:01 · Upravil/a: Marek88
Tomashekk:
Běžný způsob je řekněme opačný. Všude v html píšeš ty hezké odkazy (např.: http://mops.cz/clanky/info_o_plemeni/68) a na serveru z nich uděláš pro vnitřní potřeby (uživatel to nevidí) ty "ošklivé" pomocí mod rewrite. |
||
Tomashekk Profil |
#3 · Zasláno: 15. 1. 2011, 22:23:40
Marek88:
a jak by teda bylo to pravidlo pro mod_rewrite? v tomto případě? |
||
Tomashekk Profil |
Tomashekk:
bylo by to něco v tom stylu jako RewriteRule ^mops.cz/(.*)/(.*)/(.*) index.php?page=$1&topic=$2&story=$3 je to tak? Zasláno: 16.1.2011 12:05:28 jde mi o to, zda toto je správně :( a to samé jak by šlo udělat u tohoto? mops.cz/?page=modules/forum/index&posts=401&forum=1 nebo jak jinak to udělat? |
||
Davex Profil |
#5 · Zasláno: 16. 1. 2011, 13:39:33
Tomashekk:
Toto pravidlo správně není. Regulárním výrazem je vyhodnocována pouze cesta bez doménového jména, takže to je tam navíc. Také by se mělo vyloučit lomítko mezi lomítky a požadovat mezi nimi alespoň jeden znak. RewriteRule ^([^/]+)/([^/]+)/(.*) index.php?page=$1&topic=$2&story=$3 Možná by ještě bylo dobré zauvažovat nad pořadím parametrů v cestě. Nevím, jaký mají ty parametry přesný význam, ale v cestě bych je řadil od obecných po konkrétní (asi /topic/story/page). |
||
Tomashekk Profil |
#6 · Zasláno: 16. 1. 2011, 14:45:02
Davex:
jenže jak to logicky uděla u tohoto? mops.cz/?page=modules/forum/index&posts=401&forum=1 nějak to nechápu :( |
||
Davex Profil |
#7 · Zasláno: 16. 1. 2011, 14:54:43
Tomashekk:
Jak? Asi bych si pro diskusi vyhradil nějaké klíčové slovo, třeba diskuse a před stávající pravidlo přidal další, které bude URL se slovem diskuse přepisovat na skript s požadovanými parametry. RewriteRule ^diskuse/([^/]+)/(.*) index.php?page=modules/forum/index&posts=$1&forum=$2 Opět neznám pravý význam parametrů a jaké by bylo vhodné pořadí v přepsané cestě. |
||
Tomashekk Profil |
#8 · Zasláno: 16. 1. 2011, 14:56:31
Davex:
Odkaz na tomhle odkazu se můžete podívat.. význam je ten, že posts je ID daného vlákna a forum je ID daného tématu |
||
Davex Profil |
#9 · Zasláno: 16. 1. 2011, 15:08:13
Tomashekk:
Proč by mělo být v URL ID tématu, když stačí jen ID vlákna? Nebo vlákno neví, do kterého tématu patří? |
||
Tomashekk Profil |
#10 · Zasláno: 16. 1. 2011, 15:11:47 · Upravil/a: Tomashekk
Davex:
to máte pravdu, takže jak u článků, tak i u fora stačí dávat &ID=xxx ale v podstatě ten odkaz je dělanej jako je tady na foru.. takže by to mohlo být nějak takto? RewriteRule ^diskuse.html/(.*) index.php?page=modules/forum/index&posts=$1 RewriteRule ^clanek.html/(.*) index.php?page=clanky&story=$1 nepletu se? |
||
Tomashekk Profil |
#11 · Zasláno: 16. 1. 2011, 19:28:03 · Upravil/a: Tomashekk
RewriteRule ^diskuse.html/(.*) index.php?page=modules/forum/index&posts=$1 RewriteRule ^clanek.html/(.*) index.php?page=clanky&story=$1 RewriteRule ^odkazy.html/(.*) index.php?page=links&id=$1 RewriteRule ^stahuj.html/(.*) index.php?page=downloads&id=$1 RewriteRule ^inzerce.html/(.*) index.php?page=adver&id=$1 RewriteRule ^diskuse.html index.php?page=modules/forum/index RewriteRule ^clanek.html index.php?page=clanky RewriteRule ^odkazy.html index.php?page=links RewriteRule ^stahuj.html index.php?page=downloads RewriteRule ^inzerce.html index.php?page=adver Něco jsem sesmolil, ale nevím zda je to správně, prosím okomentujte mi to. Ptám se jen proto, že to nemám kde zkoušet :( |
||
Davex Profil |
#12 · Zasláno: 16. 1. 2011, 19:54:36 · Upravil/a: Davex
Tomashekk:
Na každém řádku bych ještě použil příznak [L] . Tečky v prvním parametru by se měly escapovat jako \. a v posledních pěti pravidlech by bylo dobré určit konec řetezce.
… RewriteRule ^diskuse\.html$ index.php?page=modules/forum/index [L] … „Ptám se jen proto, že to nemám kde zkoušet :(“ To je pro vývojáře dost velká překážka. Pro vývoj ve Windows je dobré používat nějaký vhodný balík jako XAMPP, EasyPHP nebo WampServer. |
||
Tomashekk Profil |
#13 · Zasláno: 16. 1. 2011, 20:17:15
Davex:
co znamená ten příznak L? Děkuji za pomoc... jde o to, že nyní nemám funkční PC a jsem nucen pracovat na notebooku a na tom se neda skoro nic delat (stupidni Visty) |
||
Petr__ Profil * |
#14 · Zasláno: 16. 1. 2011, 20:39:59
Tomashekk:
„co znamená ten příznak L?“ Hned v první odpovědi [#2] Marek88 máte odkaz na http://www.jakpsatweb.cz/server/mod-rewrite.html , kde je to vysvětleno... |
||
Tomashekk Profil |
#15 · Zasláno: 16. 1. 2011, 20:58:22
Petr_:
Děkuji, už jen tedy rozchodit to easyPHP viz Odkaz |
||
Časová prodleva: 13 let
|
0