Autor | Zpráva | ||
---|---|---|---|
Milkys Profil |
#1 · Zasláno: 22. 10. 2011, 18:55:06
Zdravím všechny a žádám o psychickou podporu.
Vyzkoušel jsem za dnešek několik pokusů (jinak se tomu říci nedá), ale bez úspěchů. Potřebuji přesměrovat např. subdomena.domena.cz/index.php?navigace=2 nebo subdomena.domena.cz/index.php?navigace=2258 na subdomena.domena.cz/2 nebo na subdomena.domena.cz/2258 apod. Nemá s tím někdo zkušenosti? A chtěl by se o tyto zkušenosti podělit? Předem děkuji. |
||
Davex Profil |
#2 · Zasláno: 22. 10. 2011, 23:20:31
Pro své potřeby si můžeš přizpůsobit řešení z Přesměrování starých url na nové hezké url. Potřebné základy najdeš popsané na http://www.jakpsatweb.cz/server/mod-rewrite.html.
|
||
Milkys Profil |
#3 · Zasláno: 23. 10. 2011, 00:08:00
Už jsem to četl několikrát i jiné weby na toto téma. Přesměrování starých na nové bych použil (nerad) až když nic nepomůže.
Třeba tento dnes asi 254. pokus (omyl): RewriteEngine On RewriteBase / Options +FollowSymlinks RewriteCond $0 !^(favicon\.ico|robots\.txt|img(/.*)?)$ RewriteRule .* index.php?navigace=$0 Stránka se zobrazí jako kdybych ve webDeveloperu vypnul css a nefungují odkazy, resp. url odkazu z menu v adresním řádku je hezká, protože jsem ji změnil do příslušné podoby, ale zůstane zobrazená homepage i když jsem kliknul na odkaz např. subdomena.domena.cz/157. Tohle už je zoufalost. |
||
Mastodont Profil |
#4 · Zasláno: 23. 10. 2011, 08:08:55
Co třeba použít obyčejné
RewriteCond %{REQUEST_FILENAME} !.(jpg|jpeg|png|gif)$ RewriteRule ^/(.*)$ /index.php [QSA,L] a uvnitř index.php si rozparsovat $_SERVER["REQUEST_URI"] ? |
||
Milkys Profil |
#5 · Zasláno: 23. 10. 2011, 09:30:14
Domníval jsem se, že asi budu muset udělat ještě něco uvnitř webu. Je to můj 1. projekt v php a proto bych uvítal nějaký příklad rozparsování $_SERVER["REQUEST_URI"] nebo odkaz kde se to mohu naučit - nevím co hledat.
Jinak děkuji za reakci. |
||
Mastodont Profil |
#6 · Zasláno: 23. 10. 2011, 11:22:49
Rozparsovat = rozložit na jednotlivé části, třeba
$url_array = explode( '/', $_SERVER["REQUEST_URI"] ); |
||
Milkys Profil |
#7 · Zasláno: 23. 10. 2011, 11:37:48
hm tak jestli tomu dobře rozumím tak to mám. Je to ono?
if (!IsSet($_GET['navigace'])) $_GET['navigace']= ''; // přesměrování na home $navigace = explode("-", $_GET['navigace']); if (!IsSet($navigace[0])) $navigace[0]=''; $key_nav = $navigace[0]; if (!IsSet($navigace[1])) $navigace[1]=''; $kategorie = $navigace[1]; if (!IsSet($navigace[2])) $navigace[2]=''; $pobyt = $navigace[2]; if ($navigace[0]!='' and $navigace[1]=='' and $navigace[2]=='' and is_numeric($navigace[0])) { $pobyt = $navigace[0]; $key_nav = ''; } if (!is_numeric($navigace[0])){ if (IsSet($navigace[0])) $kategorie = $navigace[0]; if (IsSet($navigace[1])) $key_nav = $navigace[1]; if (IsSet($navigace[2])) $pobyt = $navigace[2]; } |
||
CZechBoY Profil |
#8 · Zasláno: 23. 10. 2011, 12:03:19
if (IsSet($navigace[0])) $kategorie = $navigace[0]; if (IsSet($navigace[1])) $key_nav = $navigace[1]; if (IsSet($navigace[2])) $pobyt = $navigace[2]; to vůbec nechápu.. však o pár řádků výš všechny tyhle hodnoty nastavuje pokud nejsou nastavený.. |
||
Milkys Profil |
#9 · Zasláno: 23. 10. 2011, 15:17:29 · Upravil/a: Milkys
To mi udělá následující adresy:
subdomena.domena.cz/index.php?navigace=2-delkapobytu subdomena.domena.cz/index.php?navigace=spa-Nějaké+Město subdomena.domena.cz/index.php?navigace=238-pobyt-Nějaký+Název+pobytu subdomena.domena.cz/index.php?navigace=wellnesshotel-Nějaký+Název+Hotelu a mě stačí toto: subdomena.domena.cz/2-delkapobytu výpis pobytů o určitém počtu dní subdomena.domena.cz/spa-Nějaké+Město výpis pobytů v daném městě subdomena.domena.cz/238-pobyt-Nějaký+Název+pobytu detail 1 pobytu subdomena.domena.cz/wellnesshotel-Nějaký+Název+Hotelu výpis pobytů vybraného 1 hotelu Diakritiku nechám být (četl jsem i viděl, že i wiki je s diakritikou jen místo + má _ - nemělo by to mít vliv jestli je tam +), všechny mé weby jsou bez diakritiky s pomlčkami na předních pozicích ve vyhledávačích tak mě zajímá jak si to povede s diakritikou. Seznam údajně diakritiku "umí" jestli se nepletu od května 2011. Tak uvidíme. |
||
Davex Profil |
#10 · Zasláno: 23. 10. 2011, 18:24:01
Milkys:
„Stránka se zobrazí jako kdybych ve webDeveloperu vypnul css“ Pokud máš styly v externím stylopisu, tak je to možná tím, že se přepisují na skript index.php a k externím stylopisům se tedy prohlížeč nedostane. Měl by přepisovat jen URL, která nevedou k žádnému souboru, což lze zařídit přidáním podmínky před přepisovací pravidlo RewriteCond %{REQUEST_FILENAME} !-f „nefungují odkazy, resp. url odkazu z menu v adresním řádku je hezká, protože jsem ji změnil do příslušné podoby, ale zůstane zobrazená homepage i když jsem kliknul na odkaz“ Nějak jsem se v tom ztratil. Takže tvůj problém je v tom, že když v prohlížeči zadáš URL subdomena.domena.cz/něco-oddělené-pomlčkami, tak se skriptu index.php nepředá parametr navigace=něco-oddělené-pomlčkami? Když si na začátku skriptu uděláš kontrolní výpis proměnné $_GET['navigace'] , tak má správnou hodnotu?
|
||
Milkys Profil |
#11 · Zasláno: 23. 10. 2011, 19:53:15 · Upravil/a: Milkys
Davex:
ano mám je samozřejmě externě v subdomena.domena.cz/css/styly.css javascripty také subdomena.domena.cz/js/neco.js Více mě trápí to, že se nezobrazí co má a zůstane to "viset" na homepage. Nějak jsem se v tom ztratil když v prohlížeči zadám např. subdomena.domena.cz/spa-Nějaké+Město se nezobrazí obsah, který se zobrazoval bez .htaccess po zadání subdomena.domena.cz/index.php?navigace=spa-Nějaké+Město to "spa-" je jakoby kategorie (zapsané ve switch jako jedno z case) a "Nějaké+Město" je urlencode (název města) vytažené z xml pomocí simplexml xpath tzn. může být: subdomena.domena.cz/spa-Nějaká+Díra+nad+Řekou nebo také subdomena.domena.cz/spa-Město Kontrolní výpis má správnou hodnotu. Když jsem např na: subdomena.domena.cz/index.php?navigace=spa-Nějaké+Město a vy echuju $key_nav (což je jakoby kategorie pro "spa" zobrazí se Arrayspa. Snad jsem to pochopil správně - jsem začátečník s php. |
||
Davex Profil |
#12 · Zasláno: 23. 10. 2011, 20:41:23
Milkys:
> Kontrolní výpis má správnou hodnotu. Když jsem např na: > subdomena.domena.cz/index.php?navigace=spa-Nějaké+Město A co ukáže kontrolní výpis $_GET['navigace'] při zadání subdomena.domena.cz/spa-Nějaká+Díra+nad+Řekou a s pravidly podle [#3]?
|
||
Milkys Profil |
#13 · Zasláno: 23. 10. 2011, 21:06:58
Davex:
na homepage v adresním řádku zadáno subdomena.domena.cz/index.php Arrayindex.php v adresním řádku zadáno subdomena.domena.cz Arrayindex.php v adresním řádku zadáno subdomena.domena.cz/spa-Nějaká+Díra+nad+Řekou také Arrayindex.php a správně by mělo být asi Arrayspa proto mi to zůstává na homepage a samozřejmě nenastylované z ext. .css. |
||
Davex Profil |
#14 · Zasláno: 23. 10. 2011, 21:23:19 · Upravil/a: Davex
Takže máš úplně na začátku skriptu index.php řádky
<?php echo $_GET['navigace'], '<br>'; echo 'Obsah parametru navigace: ', $_GET['navigace'], ' $<br>'; // lepší varianta, abys viděl kde to začíná a končí echo 'Volaná cesta: ', $_SERVER['REQUEST_URI'], ' $<br>'; // a ještě k tomu výpis REQUEST_URI a pokaždé to vypisuje Array... ?
|
||
Milkys Profil |
#15 · Zasláno: 23. 10. 2011, 22:06:41
na začátku index.php mám includovaný navigace.php.
Pokud to vložím tak jak říkáš na začátek, před include navigace.php zobrazí se toto: index.phpObsah parametru navigace: index.php $ i v případě, že v adr. ř. mám subdomena.domena.cz/spa-Nějaká+Díra+nad+Řekou . Pokud to vložím do navigace.php na 5. řádek kodu #7 tak je to také úplně stejné. |
||
Milkys Profil |
#16 · Zasláno: 23. 10. 2011, 22:17:35 · Upravil/a: Milkys
á že by?
Nyní v případě, že v adr. ř. mám subdomena.domena.cz/spa-Nějaká+Díra+nad+Řekou to vypíše: index.php Obsah parametru navigace: index.php $ Volaná cesta: /spa-Nějaká+Díra+nad+Řekou $ Jo a mám to vložené na tom 5. řádku kodu #7 . To samé, když to je před include navigace.php na zač. index.php |
||
Kajman_ Profil * |
#17 · Zasláno: 23. 10. 2011, 22:36:11
Ve druhém kole přepisu se do parametru dostane ten index.php, na který bylo přepsáno v prvním kole. Ošetřete pravidla, aby se kromě obrázků atp. nepřepisoval ani index.php.
|
||
Milkys Profil |
#18 · Zasláno: 23. 10. 2011, 23:10:46 · Upravil/a: Milkys
Hoši mě to asi jede.
RewriteEngine On RewriteBase / RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteRule ^index.php http://pobyty.awellness.cz/ [R=301,QSA,L] RewriteCond $0 !^(favicon\.ico|robots\.txt|img(/.*)?)$ RewriteCond %{REQUEST_URI} !^/index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* index.php?navigace=$0 Ještě to projedu a jestli to bude dobrý tak písnu. Vypadá to, že to funguje. Děkuji mnohokrát všem co měli se mnou trpělivost. |
||
Časová prodleva: 13 let
|
0