Autor Zpráva
Radim24
Profil
Ahoj,
můžete mi říct jakou akci vykonává tato formule?

rewriteCond %{REQUEST_FILENAME} !-f
rewriteCond %{REQUEST_FILENAME} !-d
rewriteRule ^(.*)$ index.php?url=$1
[L,QSA]

Umím jen regulární výrazy, takže poznám, že %{REQUEST_FILENAME} asi dohazuje URL adresu. Ale nevím co znamenáäjí ty parametry !-f , !-d
a toto:
rewriteRule ^(.*)$ index.php?url=$1
Majkl578
Profil
pokud fyzicky neexistuje jako soubor (f) nebo slozka (d)
AM_
Profil
ewriteRule ^(.*)$ index.php?url=$1
jakoukoli zadanou adresu přepíše na index.php a původní adresu předá jako parametr "url"
Ten, co k tomu psal kód, zřejmě neznal $_SERVER['REQUEST_URI'], protože kdyby jo tak to ?url=$1 tam nebude potřeba...
polopatě, bagr.html to přepíše na index.php?url=bagr.html
Radim24
Profil
Mmmm rozumím. Takže to není co potřebuju. Potřeboval bych něco složitějšího ale nevím jestli to zvládnu.
Radim24
Profil
A co znamenají ty parametry [L,QSA]? Zkusím sestavit regulární výraz.

Uvedu příklad co řeším (adresa je jen příkladová)

Edit - oprava
adresu

http://web-design.rozhled.cz/fotoalbum/flowers/green/preview.php?num=10

musím sestrojit už v php souboru a odeslat uživatelovi jako soubor html.

Tuto sekvenci potřebuju předat jako

http://web-design.rozhled.cz/index.php?id=fotoalbum_preview&dir=flovers&sub=green&num=10
AM_
Profil
L je poslední překlad (žádný následující se neprovede), QSA znamená přenos query stringu.
Tohle je imho nejmocnější cesta, pokud tedy vyžaduješ přesměrování do více různých souborů (ale i to je vlastně takhle řešitelné), protože se prostě všechno přesměruje na index.php kde už si dotaz vyhodnotíš po svém v PHP - zatímco pravidlům v .htaccess dobře rozumí pár vyvolených, v PHP si to rozparsuješ snadno ;)
Radim24
Profil
Podařilo se mi najít výbornou stránku a povedlo se mi najít i jak se odkazovat na pojmenované vnořené předlohy:

http://kobesearch.cpan.org/htdocs/perl/perlreref.html

Viz EXTENDED CONSTRUCTS
(?<name>...) Named capture
(?'name'...) Named capture
(?P<name>...) Named capture (python syntax)

(?N) Recurse into subpattern number N
(?-N), (?+N) Recurse into Nth previous/next subpattern
(?R), (?0) Recurse at the beginning of the whole pattern
(?&name) Recurse into a named subpattern
(?P>name) Recurse into a named subpattern (python syntax)

(?(cond)yes|no)
(?(cond)yes) Conditional expression, where "cond" can be:
(N) subpattern N has matched something
(<name>) named subpattern has matched something
('name') named subpattern has matched something
(?{code}) code condition
(R) true if recursing
(RN) true if recursing into Nth subpattern
(R&name) true if recursing into named subpattern
(DEFINE) always false, no no-pattern allowed

A další dost užitečné věci - snad budou fungovat...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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