Autor | Zpráva | ||
---|---|---|---|
HGD Profil |
#1 · Zasláno: 18. 6. 2011, 18:10:58
Zdravím přátelé, řeším takovej problém. chci udělat hezký URL, s jedním parametrem je t OK, ale nevim jak na 2 parametry. Hlavní problém je asi v tom, že nechci aby odkaz měl strukturu: stránka.php?odkaz=tentam&zdroj=soused ale chci strukturu domena.cz/tentam/soused a přitom mam soubory tentam a soused, při 2 úrovni by byl TENTAM jen jako text ale na soubor by byl pouze odkaz.
Nevím zda jsem nevymyslel uplnou kravinu, tak díky za každou konstruktivní připomínku |
||
blahapet Profil |
#2 · Zasláno: 19. 6. 2011, 14:34:34
Já jsem donedávna ještě neuměl nic udělat co se týče hezkých URL s jením parametrem - dnes bych si již troufl i na deset parametrů.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/([^/]+)$ ?odkaz=$1&zdroj=$2 Pro vysvětlenou: To co je za RewriteRule v závorkách jsou proměnné (reg. výrazy). Ty pak dosazuješ v druhé části RewriteRule za mezerou $1 a $2. Pokud bych z jakéhokoli důvodu nechtěl použít regulární výrazy dosazovaných proměnných a byl bych si jist, že takovýto typ odkazu bude na Tvých stránkách unikátní, šlo by to zapsat i takto: RewriteRule ^tentam/soused$ ?odkaz=tentam&zdroj=soused Pokud tomu všemu porozumíš, záhy zjistíš že do adresního řádku můžeš v podstatě napsat cokoli, aby se ti dostala požadovaná stránka "stránka.php?odkaz=tentam&zdroj=soused" Hodně štěstí! |
||
HGD Profil |
#3 · Zasláno: 19. 6. 2011, 19:25:20
díky moc :) ještě dotaz, když mam některý stránky jen s jedním parametrem a některý se 2 parametry?
Ještě jedna věc, mam pár (asi tak 6 stránek) který jsou s jedním parametrem, ale když je otevřu, tak bych chtěl mít v adresním řádku odkaz: www.doma.cz/stránka/podstránka01 (až 06) jde tole taky nějak vymyslet nebo už na to musim jinou strukturu nebo tak něco?? |
||
blahapet Profil |
#4 · Zasláno: 19. 6. 2011, 22:49:19
Pokud to takto dělám já - asi to dělám moc složitě - a mnozí na to jistě budou mítí svůj názor, ale třídím si tyto situace a pro každou z nich dělám jiné pravidlo, tzn:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)$ ?promenna1=$1 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/([^/]+)$ ?promenna1=$1&promenna2=$2 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/([^/]+)$/([^/]+) ?promenna1=$1&promenna2=$2&promenna3=$3 ... a takhle by to mohlo jíti do nekonečna. Někdy se mi stává případ u různých svých stránek, co momentálně předělávám, 10 let starý dynamický odkazy na statický, že první načítaná proměnná je vkládaný (include) soubor uložený v adresářích i podadresářích a další parametr je třebas jen stránkování (např. v knize návštěv), pak to řeším takto: RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^guestbook/strana-([^/]+)\.html$ ?page=./files/guestbook&g=$1 To znamená že pokud v adres. řádku bude: http://www.nejakastranka.cz/guestbook/strana-3.html Dostane se Ti stejného výsledku, jakoby jsi zadal: http://www.nejakastranka.cz/index.php?page=./files/guestbook&g=3 Tak právě jakoby ta "trojka" je jediné, co dosazuji. A ten "guestbook" je includovaný soubor uložený ve složce "files" Snad si z toho mého systému vyvodíš svůj. Jde o to, jen to POCHOPIT, jak to vše šlape... Jak říkám, možná to dělám třeba špatně, ale funguje mi to na mnoha eshopech a stránkách, např: http://eshop.svetlokamenu.cz http://www.bkb-hk.cz http://uplet.xf.cz |
||
blahapet Profil |
#5 · Zasláno: 20. 6. 2011, 06:07:08
Omlouvám se, koukám, že tam mám chybu u toho případu, kde jsou tři proměnné, správně má být:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ ?promenna1=$1&promenna2=$2&promenna3=$3 |
||
HGD Profil |
#6 · Zasláno: 20. 6. 2011, 19:43:05
díky moc, trochu jsem musel upravit srukturu stránek ale jinak vše funguje
|
||
Časová prodleva: 13 let
|
0