Portál AbcLinuxu, 10. května 2025 08:20

Dotaz: mod_rewrite - nezastavi se po [L]

12.7.2006 01:44 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
mod_rewrite - nezastavi se po [L]
Přečteno: 225×
Odpovědět | Admin
zdravim,

mam nasledujici .htaccess
RewriteEngine   on
RewriteBase     /fotky
RewriteRule     ^index\.php - [L]
RewriteRule     ^style\.css$ - [L]
RewriteRule     ^src/(.*)$ $1 [L]
RewriteRule     ^(.*)$ index.php?url=$1 [L]
Delam si jednoduchou aplikaci, ktera pri pristupu na /fotky/fotka.jpg obali fotku nejakou peknou strankou. Idea je ze na realnou fotku se dostanu pomoci /fotky/src/fotka.jpg (na tuhle adresu se odkazu v tagu img).

S rewritem zacinam a tak nevim jestli je muj pristup OK. Momentalne to testuju tak, ze skript index.php pouze vypise, co mu prislo v parametru url. Moje vysledky:

Na /fotky/fotka.jpg aplikace spravne na obrazovku vypise "fotka.jpg" (stejne tak pro jakekoli jine url - napr. /fotky/blabla vypise "blabla").

Na /fotky/index.php a /fotky/style.css take reaguje spravne (dostanu se na skutecne soubory), ale pri zadani /fotky/src/fotka.jpg se na obrazovku zase vypise "fotka.jpg" - takze to nekde chytlo treti prepisovaci pravidlo - ja cekam ze se dostanu primo na fotku.

Muzete prosim poradit?
never use rm after eight
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.7.2006 08:53 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: mod_rewrite - nezastavi se po [L]
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná nerozumím tomu co přesně chceš dělat, ale nestačilo by ti něco jako:
  RewriteBase     /fotky
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
Pokud soubor nebo adresář existuje, tak se na něj prvidlo nevztahuje, jinak se to předá index.php jako parametr...
-- Nezdar není hanbou, hanbou je strach z pokusu.
12.7.2006 09:08 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
Rozbalit Rozbalit vše Re: mod_rewrite - nezastavi se po [L]
Asi jsem to spatne vysvetlil. Skusim znovu: Na server do adresare /fotky nahraju fotky co chci zverejnit. Pri pristupu napriklad na /fotky/test.jpg zafunguje prepisovaci pravidlo na index.php?q=$1. Ale porad potrebuju zpusob jak se k te fotce dostat (abych se na ni mohl z vygenerovane stranky odkazat) - nejlepe pridanim nejake pripony, napr. /fotky/test.jpg.real.

Celkove mam, i po precteni dokumentace a ruznych "navodu" tak trochu chaoz v tom, jake je poradi vyhodnoceni pravidel a v tom, jakto ze prestoze mam za kazdym pravidlem [L] tak se jeste jedno pravidlo aplikuje...
never use rm after eight
12.7.2006 12:06 džugašvili
Rozbalit Rozbalit vše Re: mod_rewrite - nezastavi se po [L]
Chtělo by to namísto [L] dávat [PT,L].

Druhá možnost je /src/(*.) nevytvářet pomocí rewrite, ale symbolickým linkem.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.