Autor Zpráva
evlo
Profil
Snažím se napsat rewrite tak aby přesměroval requesty typu www.stranka.cz/neco nebo stranka.cz/neco na index2.php?page=neco a zároveň requesty co jsou pouze na www.stranka.cz, www.stranka.cz/, stranka.cz nebo stranka.cz/ nechal projít na index.php nebo případně přesměroval na index.php.

Existuje i spousta výjmek, které nechci přesměrovat. Např. Adresáře templates, image nebo soubory s příponou css, png, jpg.

Zatím neuspěšně.

Poradíte prosím jak na to?


Podle mě by to bez vyjmek mělo být pouze takto:
RewriteRule ^/(.+)$ /index2.php?page=$1 [L]
ale očividně tomu tak není.
Davex
Profil
evlo:
Musí se tam přidat podmínka, aby se nepřepisovaly existující soubory - tím se zabrání i zacyklení přepisu. Pokud bude pravidlo v souboru .htaccess, tak by v regulárním výrazu nemělo být úvodní lomítko.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.+)$ /index2.php?page=$1 [L]
evlo
Profil
Díky moc, vypadá to, že bez toho lomitka to opravdu funguje tak jak bych chtěl. Musím říct, že jsem to bez lomitka i zkoušel, protože to to tak vyšlo správně podle http://martinmelin.se/rewrite-rule-tester/ (šikovný nástroj), ale chyběla mi tam ta condition. Stále je to pro mě alchimie :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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