

Úprava pravidel pro mod_rewrite
Chlapci, není tu někdo, kdo by zvládnul úpravu pravidel pro mod_rewrite?
Kvůli CMS (seo url), který provozuji na své doméně, jsem zaslal na hosting vygenerovaná pravidla pro úpravu konfigurace na hepnar.cz:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
SEO url fungují, ale pravidla ovšem přepisují i adresu
www.hepnar.cz/shop
kde mám nainstalovaný shop - tudíž odkaz nefunguje a stránka je nenalezena.
Odkaz na shop funguje teď pouze v tomto tvaru:
www.hepnar.cz/shop/index.php
Potřeboval bych v těch pravidlech udělat vyjímku pro adresu, kde je shop (chtějí to po mě na hostingu), ale nevím jak na to.
Nezvládnul by jste to, prosím, někdo? Díky za pomoc či radu.
Ještě tady mám dvě možnosti jak pravidla upravit, co vy na to?
1. RewriteRule ^shop/?$ shop/index.php [L]
2. RewriteRule ^shop/?$ shop/index.php [L,QSA]
Obe sa od môjho líšia otáznikom - teda, že okrem požiadavky na /shop/ prepíšu aj požiadavku na /shop (bez posledného lomítka). Do toho pravidla som to nedával, pretože to už server prepisuje (dá sa to vidieť tak, že keď používateľ zadá shop, tak ho server presmeruje na shop).
Druhé pravidlo má navyše QSA (Query String Append), to znamená, že ak si niekto vypýta stránku /shop/?name=value, tak sa to prepíše na /shop/index.php?name=value (bez QSA by to bolo iba /shop/index.php). To QSA by som tam nechal.
Takže toto pravidlo by mělo být rozumným kompromisem (pro případ, že by tam server lomítko nepřidal)?
RewriteRule ^shop/?$ shop/index.php [L,QSA]
nebo myslíš, že je výhodnější ta Tvá původní úprava?
RewriteRule ^shop/$. shop/index.php [L,QSA]
Ty parametry QSA tam asi teda nechám. Přijmi mé upřímné díky za pomoc, jestli bude zítra chvilka času, zkusím to testnout.
Môj názor je taký, že lomítko by tam malo byť, takže som za:
RewriteRule ^shop/$ shop/index.php [L,QSA]
Teraz pozerám, že za $ som mal bodku - to je preklep, tá bodka tam nemá čo hľadať (asi kvôli tomu to flegovi nefungovalo).
No vidíš, chtěl jsem se na tu tečku zeptat, ale smířil jsem se s tím, že tam patří.

Pokud to pofrčí a budeš mít cestu do Liberce - jsi mým hostem, případně Ti udělám speciální mod_rewrite cenu na nějakou váhu.
Zatím díky!
Už bych to rád poslal na hosting, ale mám dilema jestli má být na posledním řádku před indexem lomítko nebo nemá?!
RewriteRule . index.php [L] (by los) nebo RewriteRule . /index.php [L] (původní)
Poradíte ještě?
Vďaka tomu, že tam je RewriteBase nastavené na "/", je jedno, či tam to lomítko bude alebo nie. Ja ho tam nedávam kvôli tomu, že keď dám web do iného adresára, tak mi stačí v .htaccess zmeniť iba RewriteBase (ináč by som musel meniť zakaždým všetky pravidlá).
Vyřešeno - díky!
RewriteRule ^shop/?$ shop/index.php [R,L,QSA]