Autor Zpráva
mata.lan
Profil *
Mám web, kde používám jednoduchou variantu hezkých url. Z .htaccess odešlu do php část url, tam pak pomocí ní vytáhnu z databáze danou stránku a zobrazím.

.htaccess v rootu
RewriteEngine On
RewriteBase /_test

RewriteCond %{HTTP_HOST} ^dax.cz
RewriteRule (.*) http://www.dax.cz/$1 [R=301,QSA]
RewriteRule ^([^\.]+).*$ index.php?str=$1 [L,QSA]


Problém ale nastává uvnitř složky admin. Po čase (asi přidáním kousku nějakého kodu) již funkční systém hezkých url adres přestal poslouchat a nevpustí mě do složky admin. Pokud do adminu vložím modeRewrite Off, tak se zobrazí 403, pokud tam nevložím nic, přesměruje mě do rootu. Vymýšlel jsem spoustu variant a motal jsem všechno do sebe a teď jsem momentálně ve stavu, kdy mi přesměrování nefunguje vůbec.

Jde to nějak snadno vyřešit? Napadlo mě například v htaccess v rootu všem 404 podstrčit obsah generovaný v php z url adresy a případné skutečně chybějící soubory pak označovat chybou z hlavičky v php - ale nevím.

Zatím mi to fungovalo tak, jak jsem popsal nahoře. V databázi mám v jednom sloupečku v tabulce upravené seo tvary názvů a z těch pak vybírám daný obsah. Stránek mám kolem 33000 (jde o webshop).
Jak by jste to řešili vy?
Nox
Profil
Nejsem úplně mod_rewrite profík, ale nevidím tu nic, co by mělo způsobit znefunkčnění admina...nemůže to dělat nějaký php kód?
"asi přidáním kousku nějakého kódu" - ten by chtělo najít :)
mata.lan
Profil *
Nakonec to zřejmě bylo chybou v kodu... ale opět jsem to vyřešil ne moc vhodným způsobem - pokus/omyl tak dlouho, dokud to nezačlo fungovat.

htaccess mám teď takovýto:
RewriteEngine On
RewriteBase /_test

RewriteCond %{HTTP_HOST} ^dax.cz
RewriteRule (.*) http://www.dax.cz/$1 [R=301,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond $0 !^(favicon\.ico|robots\.txt|img(/.*)?|admin)$
RewriteRule ^([^\.]+)[\.]{1}.+$ index.php?c=s&str=$1 [L,QSA]
RewriteRule ^([^\.]+).*$ index.php?str=$1 [L,QSA]


výhodu má scrip v tom, že testuje existenci souboru, než jej nahradí, takže v případě souborů a adresářů, co existují (favicon, admin...) se adresa nepřepisuje.

Do scriptu pak posílám str bez koncovky a ještě proměnnou, která určí, zda jde o soubor či adresář

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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