.htaccess a zobrazování adres bez přípon

5 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Zkoušela jsem udělat v .htaccess zobrazování adres bez přípon, použila jsem tento kód: RewriteCond %{REQUEST_FILENAME} -f [NC,OR] RewriteCond %{REQUEST_FILENAME} -d [NC] RewriteRule .* - [L] RewriteRule ^([\w-]+)$ /$1.html [L,QSA] který ovšem nefunguje. Poradí mi prosím někdo jak to správně udělat?
  2. Hned ze začátku se zeptám, přečetla něco o RewriteCond a RewriteRule (a modifikátorech v hranatých závorkách) předtím, než jsi se snažila použít tento kód? Pokud ne, doporučuji dostudovat (může se to hodit), v opačném případě by mě zajímalo, jaký byl zamýšlený účel oněch dvou po sobě jdoucích RewriteRules? Správně by to mohlo vypadat např. takto: RewriteCond %{REQUEST_FILENAME} -f [NC,OR] RewriteCond %{REQUEST_FILENAME} -d [NC] RewriteRule ^(.*)$ /$1.html [L,QSA] Zmíněný kód kontroluje skutečnou existenci souborů, to je ale relativně náročná operace a v rámci optimalizace (dostatečně velké projekty) se potom takové kontroly často přepisují/upravují/vyhazují (např. ignorace takovýchto pravidel pro některé adresáře např. s css/obrázky/dokumenty).
  3. Tak jsem to pěkně dopletl, příště si raději kód přečtu víckrát, než odpovím. Velmi podobný kód (je uveden v několika, i českých tutoriálech) se často objevuje negovaný jako: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ... a nějak jsem chybějící vykričníky přehledl (a tvůj kód tupě zkopíroval a upravil, jako by tam vykričníky byly). Omlouvám se. Původní kód je tedy v pořádku, protože existující soubory nechává být tak, jak jsou. Druhé RewriteRule je také (relativně) v pořádku, protože kontroluje přítomnost tečky (a pokud není, přidá tečku i s příponou). To sice neumožňuje přistupovat stejným způsbem k souborům, které v názvu tečky obsahují, ale to chápu jako záměr. Díval jsem se na web veganske-recepty.wz.cz a zobrazení html souborů bez přípony funguje (co jsem viděl tak minimálně index, odkazy..). Co jsem si všiml problému, tak je podstránka recepty, která vyhazuje seznam souborů v adresáři. To je jednoduše proto, že zmíněné RewriteCond %{REQUEST_FILENAME} zjistí, že adresář s takovým jménem existuje a tudíž neprovede předměrování na recepty.html. Rychle řešení jsou dvě: a) odebrat z podmínek RewriteCond %{REQUEST_FILENAME} -f (tzn. kontrola existence adresáře) b) nebo přejmenovat soubor či adresář ___ Mimochodem, tenhle postup vede k jisté nekonzistenci, kdy http://veganske-recepty.wz.cz/odkazy a http://veganske-recepty.wz.cz/odkazy.html mají stejný obsah. Vyhledávací roboty to nemají příliš rády.
  4. V těchto věcech se moc nevyznám a ten kód jsem měla zkopírovaný odtud: http://tomaserlich.cz/pouziti-souboru-htaccess/ Zkoušela jsem ten kód co jste sem napsal, ovšem ten mi také nefunguje, u toho předchozího se zobrazil alespoň index, u tohoto se nezobrazí ani ten.
  5. no tak jsem to zkusila a asi by bylo potřeba přejmenovat ten adresář. Díky za pomoc a info o robotech.

← Zpět na všechna témata