Autor | Zpráva | ||
---|---|---|---|
michy04 Profil |
#1 · Zasláno: 19. 9. 2011, 21:55:25
Dobrý den dělám jednoduché CMS a potřebuji poradit s jedním problémem, mám layout do kterého pomocí PHP includuji obsah z DB, ty stránky se includují nějak takto:
<?php $page = $_GET['page']; if(!isset($page)) { $page = "home"; } switch($page) { case 'home': $page = "home"; break; case 'articles': $page = "articles"; break; case 'links': $page = "links"; break; case 'aboutme': $page = "aboutme"; break; case 'viewarticle': $page = "viewarticle"; break; } if(file_exists("pages/".$page."/index.php")) { require("pages/".$page."/index.php"); } else echo '<span style="color:Red; text-decoration:underline; font-size:2em; font-family:arial;">Stránka nebyla nalezena</span>'; ?> No a mám články jejichž ID ziskavám z DB a nasledně jejich id predam jako parametr a zobrazím článek s tím parametrem, problém je v tom, že to dělám přes mod_rewrite a nějak mi nefunguje to předání, ten přepis mam takto(chci to přepsat z .../index.php?page=viewarticle&id=<z DB> na .../article/<id z DB-název článku z DB>, tedy např.: ".../article/1-prvni-clanek-na-blogu") Tady je ten Regex: RewriteRule ^article/([0-9]+).*$ %{DOCUMENT_ROOT}/index.php?page=viewarticle&id=$1 Ale nějak se mi tam nepředá to URL, prostě mi to napíše stránka nenalezena, myslim si, že je asi špatně ten regex, nevíte kde je ta chyba? už se s tim rvu asi 4 hodiny, díky za odpovědi... |
||
blahapet Profil |
#2 · Zasláno: 20. 9. 2011, 13:32:31
Teď nevím, jestli jsem to dobře pochopil a hlavně to i dobře napíšu:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^article/([^/]+)-prvni-clanek-na-blogu$ ?page=viewarticle&id=$1 Teoreticky by si měl z obou níže uvedených cest, dostat se stejného výsledku: www.neco.cz/article/1-prvni-clanek-na-blogu www.neco.cz/index.php?page=viewarticle&id=1 Za případné cyby se omlouvám... |
||
michy04 Profil |
#3 · Zasláno: 20. 9. 2011, 13:59:18
blahapet
Díky za odpověď, bohužel mi to stále píše, že stránka nebyla nalezena :-( Zkusim si ještě trochu pohrát s tim regexem a pokud to nepujde, dám tam zpátky normální URL... |
||
Kajman_ Profil * |
#4 · Zasláno: 20. 9. 2011, 14:03:48
Zkusil bych nepoužívat v pravidle %{DOCUMENT_ROOT}/
A také můžete zkusit, jestli rewrite vůbec máte zapnuté. |
||
michy04 Profil |
#5 · Zasláno: 20. 9. 2011, 14:11:01
Kajman:
Díky za tip, hned to jdu zkusit, rewrite mám na 100% zapnuté, jelikož například http://mojestranka.cz/home mi funguje a přesměruje se na http://mojestranka.cz/?page=home |
||
michy04 Profil |
#6 · Zasláno: 20. 9. 2011, 14:19:02 · Upravil/a: michy04
Abych to ještě upřesnil, když to dělam bez URL Rewritingu, tak to funguje, ale s URL Rewritingem ne, takže chyba je tam.
Jde mi konkrétně přesně o toto: Z tohoto URL: http://stranka.cz/article/1-nazev-clanku-z-databaze-ktery-se-dynamicky-generuje na http://stranka.cz/?page=viewarticle?id=1 To id se take generuje z db(AUTO_INCREMENT) takže v podstatě chci s tohoto url http://stranka.cz/article/1-nazev-clanku-z-databaze-ktery-se-dynamicky-generuje Dostat pouze to id a dosadit ho sem http://stranka.cz/?page=viewarticle?id=1 Ten název článku je jen v url pro upřesnění a lepší SEO, ale ten vědět nepotřebuju pro chod, de jen o to ID. |
||
michy04 Profil |
#7 · Zasláno: 20. 9. 2011, 14:26:16
Díky všem, už jsem to vyřešil, problém byl v předchozím řádku, resp. v jiném pravidel(konkretne v tomto):
RewriteRule ^(.*)$ ?page=$1 To měla za úkol přepisovat např. mojestranka.cz/home na mojestranka.cz?page=home A přepisovalo to i ten article, no prostě to nešlo :-) Ještě jednou díky |
||
Mesiah Profil |
#8 · Zasláno: 22. 9. 2011, 22:43:44
Ahoj, prosím Tě, mohl by jsi napsat jak jsi to vyřešil? Přesněji, jak jsi "omezil" předchozí pravidlo "RewriteRule ^(.*)$ ?page=$1" ??
|
||
Časová prodleva: 13 let
|
0