Autor | Zpráva | ||
---|---|---|---|
mata.lan Profil * |
#1 · Zasláno: 5. 2. 2009, 01:48:54
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 |
#2 · Zasláno: 5. 2. 2009, 08:56:26
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 * |
#3 · Zasláno: 5. 2. 2009, 18:23:04
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ář |
||
Časová prodleva: 15 let
|
0