| Autor | Zpráva | ||
|---|---|---|---|
| ludvalb Profil |
#1 · Zasláno: 8. 5. 2014, 19:55:30 · Upravil/a: ludvalb
Zdárek,
mám problém se kterým si nevím rady. potřeboval bych aby se po zadání url adresy www.neco.cz presmerovala na www.neco.cz/index.php?page=uvod a aby se to rovnou tvarilo jako www.neco.cz/uvod/
stránka nemusí být index.php Jde mi hlavně o to, že potřebuji získat $_GET['page']; na začátku stránky. ději za pomoc. zkoušel jsem varianty z http://mike.treba.cz/mod_rewrite-a-hezke-url/ ale došel jsem jen do faze hezkych adres jako třeba www.neco.cz/postranka což vlastně je www.neco.cz/index.php?page=podstranka
zde je kod který jsem použil. RewriteEngine on
RewriteRule ^index.php http://www.neco.cz/hlavni.php?page=uvod [R=301] ---- toto funguje pouze pokud zadám www.neco.cz/index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ ?page=$1funguje mi i když zadám www.neco.cz/uvod ale nedaří se ni nato přesměrovat.
|
||
| Davex Profil |
Asi hledáš něco takového?
Mod_rewrite - Změna dynamických adres na statické |
||
| ludvalb Profil |
#3 · Zasláno: 9. 5. 2014, 20:37:24
s tím si dokážu poradit, to mi i tak nějak funguje. Potřebuji, ale aby mi to fungovalo i pokud zadám pouze
www.neco.cz a nemusel jsem zadávat www.neco.cz/index.php.
Pokud zadám www.neco.cz/index.php, pak vše běží jak má. i se mi vztváředí hezké url www.neco.cz/podtranka
pokud zadám ručně nebo pomocí odkazu www.neco.cz/postranka pak je také vše v pořádku.
Potřebuji vyřešit jen první přístup na doménu. Mám to na vlastním hostingu s apachem, možná mám jen něco špatně v http.conf |
||
| Davex Profil |
#4 · Zasláno: 9. 5. 2014, 21:24:31
A problém je v čem? Na úvodní stránce
www.neco.cz/ zobrazit obsah jako na www.neco.cz/index.php?page=uvod? To stačí ošetřit v PHP skriptu a není potřeba nikam přesměrovávat.
|
||
| ludvalb Profil |
#5 · Zasláno: 9. 5. 2014, 22:22:28
jde o to, že se mi nevytvoří proměnná page a pak mám chyby v obsahu (používám register_globals=on), pak dále mám, že pokud $page=""; tak se přiřadí $page="uvod"; a vloží obsah stránky uvod.
if ((string)$_GET["page"]!='') $page=$_GET["page"]; else $page ="uvod";
if (is_file("./".$page.".htm")):
include $page.".htm";
elseif (is_file("./".$page.".php")):
include $page.".php";
else: include "notfound.php";
endif;problém je ale v tom, že $page se vytvoří až po proběhnutí if ((string)$_GET["page"]!='') proto jsem to chtěl vyřešit přesměrováním a získat tak $_GET["page"] |
||
| Davex Profil |
ludvalb:
„problém je ale v tom, že $page se vytvoří až po proběhnutí if ((string)$_GET["page"]!='')“ A ten kód upravit nemůžeš? Jinak tento kód může být celkem slušná bezpečností díra a na úvod doporučuji alespoň základní zabezpečení. <?php
if (isset($_GET["page"]) && is_string($_GET["page"])) {
$page = basename(preg_replace("~[\\x00-\\x1f]~u", "", $_GET["page"]));
} else {
$page = "";
}
if ($page == "" ) {
$page = "uvod";
} elseif (strlen($page) > 240) {
$page = "notfound";
} |
||
| ludvalb Profil |
#7 · Zasláno: 10. 5. 2014, 21:46:31
Tvůj kod mi sice nefungoval, i když má smysl, ale modifikoval jsem svůj kod a vše již běží skvěle.
if (isset($_GET["page"]) && is_string($_GET["page"])){
$page = basename(preg_replace("~[\\x00-\\x1f]~u", "", $_GET["page"]));
}else{
$page = basename(preg_replace("~[\\x00-\\x1f]~u", "", "uvod"));
}
if (is_file("./".$page.".htm")):
include $page.".htm";
elseif (is_file("./".$page.".php")):
include $page.".php";
else: include "notfound.php";
endif;děkuji za pomoc s řešením tohoto problému. |
||
|
Časová prodleva: 11 let
|
|||
0