Autor Zpráva
maxx
Profil *
Zdravim,
udělal jsem si web, kde používám mod_rewrite. Web jsem testoval na webzdarma.cz,
kde všechno běhalo v pohodě. Ovšem jakmile jsem web přehrál na placený hosting,
nastane problém, kdy se mi po kliknuti na adresu napr. stranka.com/fotbal/,
načte jen includovaná stránka fotbal.php, ale né základ index.php, do kterého
includuji. Jinak používám tento příklad -
http://mike.webzdarma.cz/mod_rewrite-a-hezke-url-dil-ii/. Díky za pomoc
Davex
Profil
Nevím, kterou variantu používáš, ale pokud tu druhou, tak se to chová správně.
joe
Profil
Nejlepší bude když sem napíšeš co más v .htaccess
maxx
Profil *
tuhle
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ ?page=$1

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ ?page=$1&arg1=$2

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)?/?/?$ ?page=$1&arg1=$2&arg2=$3

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)?/?/?/?$ ?page=$1&arg1=$2&arg2=$3&arg3=$4

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)?/?/?/?/?$ ?page=$1&arg1=$2&arg2=$3&arg3=$4&arg4=$5

Na wz.cz běhá v pohodě a jeden web, kterej jede na placenym hostingu tak taky. Ale teď se najednou vyskytl problém a já vůbec nevím proč. Pro include používám:
<?
$page=$_GET['page'];
if(!isset($page)) $page="novinky";
$invalide = array('/','/\/',':','.');
$page = str_replace($invalide,' ',$page);
if(!file_exists($page.".php")) $page = "error";
include($page.".php");
?>
bukaj
Profil
maxx
Podle popisovaného problému (nastane problém, kdy se mi po kliknuti na adresu napr. stranka.com/fotbal/, načte jen includovaná stránka fotbal.php, ale né základ index.php) bych řekl, problém bude v tom, že Apache .htaccess ani nezpracuje. (Apache si dokáže "domyslet" přípony, takže když na něj přijde požadavek na /fotbal (i /fotbal/), domyslí si příponu php a vrátí to samé jako na požadavek /fotbal.php.) 

Zkontroloval bych, jestli je na hostingu povoleno .htaccess používat. Smí-li se používat, pak jestli je název soubor správný (celý název souboru je pouze ".htaccess" (bez uvozovek), nemá žádnou příponu; některé blbější editory nedokáží pochopit, že název souboru má být pouze .htaccess a přidávají k němu koncovku (např. .txt)).

Dále bych zkusil do .htaccess umístit nějaké nesmysly, server by pak měl vracet chybu 500 Internal Serve Error. Pokud ji nevrací, je buď stále špatně název souboru, nebo může být server nastaven na jiný název přístupového souboru (direktiva AccessFileName). To by mělo být v nějaké nápovědě, či FAQu, přinejhorším bude potřeba poslat dotaz na podporu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: