Autor Zpráva
Alalala
Profil
Ahoj,

omlouvám se, že otravuji s otázkou velmi podobnou již mnoha co tu byly, ale mnoho jsem jich prošel a žádná mi nepomohla. Před pár dny jsem si začal poprvé hrát s .htaccess a snažím se dělat "pěkné adresy". Problém je ale v tom, že se mi to nakonec vždy zacyklí. ;-(

Obsah .htaccess:
RewriteEngine on
RewriteRule   ^(prihlasit|registrovat)-([0-9]*)$    /www/oop1/moje1/index\.php?scale=$2&place=$1 [L,NC]
RewriteRule   ^(prihlasit|registrovat)$    /www/oop1/moje1/index\.php?place=$1 [L,NC]
RewriteRule   ^([a-z0-9]+[a-z0-9\._-]*[a-z0-9]+)/(friends)$    /www/oop1/moje1/user\.php?user=$1&place=$2 [L,NC]
RewriteRule   ^([a-z0-9]+[a-z0-9\._-]*[a-z0-9]+)$    /www/oop1/moje1/user\.php?user=$1 [L,NC]

Může mi někdo, prosím, poradit, proč nefunguje parametr "L" (localhost - program xampp, ale stejně tak to nefunguje na serveru ic.cz) a jak se jinak v tomto případě vyhnout zacyklení? Výraz [a-z0-9]+[a-z0-9\._-]*[a-z0-9]+ značí email (resp. jeho část před zavináčem), takže potřebuju, aby mohl obsahovat i tečku apod. Pak mi to ale samozřejmě schroupne i všechny ostatní případy (např. index.php, prihlasit, prostě všechno). Díky...
Kajman
Profil
Po úspěšném přepsání adresy pravidly na jinou adresu se pravidla prochází pro novou podobu vnitřní adresy znovu.

Před poslední pravidlo můžete např. doplnit podmínku
RewriteCond %{REQUEST_FILENAME} !-f
Alalala
Profil
Kajman:
Mno...:-) Jak jednoduché... Ach jo, kdo umí ten umí, no. Díky moc, Kajmane, teď to jede skvěle. Někde si musim zkusit vygooglit, co to RewriteCond %{REQUEST_FILENAME} !-f vlastně znamená, ale s tím už tě o čas okrádat nebudu. Z jinejch příspěvků mi bylo jasný, že to asi bude chtít nějaký použití RewriteCond, ale nějak se mi ho nepodařilo pochopit...:-/

Díky!
Amunak
Profil
Alalala:
RewriteCond %{REQUEST_FILENAME} !-f určuje, že se přesměrování neprovede, pokud není splněna podmínka <jméno požadovaného souboru> není existující soubor. Zjednodušeně řečeno to dělá to, že to nepřesměruje, když ten soubor existuje.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0