Diskuze: Pokročilejší .htaccess

Tvůrce

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ahoj, tvůj seskládaný .htaccess by měl fungovat perfektně, ale
vysvětlím ti, co jednotlivé položky znamenají.
První řádek zakazuje dir. Listing.
Druhý zapíná mod_rewrite.
Třetí nastavuje kořen pro mod_rewrite.
Čtvrtý definuje pravidlo, tedy pokud bude splněna tato podmínka, upraví se
dle RewriteRule níže. Zde to znamená, že pokud není přítomno www a je
přítomna adresa dle RFC 1035, potom vrať klientovi návratový kód 301 a
adresu s www.
Další dva řádky definují podmínku, pokud není žádaný soubor/složka
nalezen, a pokud není přípona souboru v seznamu povolených, vrať klientovi
index.php.
Na dalším řádku se definuje, které typy souborů budou přepracovány
phpčkem, než se zobrazí klientovi.
-f je predpokladám file, -d directory, neviem čo však v 4. riadku znamená {2,5}, a ako vlastne funguje tá podmienka pre povolené súbory?
Veľmi som sa tým nezaoberal, nakoľko som si veľa vecí overoval cez php, ale príde mi to zbytočné pokiaľ sa server dá nastaviť takto (poprípade v httpd.conf).
Mal by si (alebo poznáš) nejaký zrozumiteľný manuál v CZ/SK jazyku?
Anglicky viem, ale trvá mi to príliš dlho.
Ďakujem.
asi to nemám najlepšie, lebo ak tam zadám m.dačo.sk, tak sa mi to zacyklí
http://www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.m.dačo.sk
a to nechcem
Ano, sorry, včera na mobilu jsem funkčnost jen odhadoval. Napsal jsem ti nový .htaccess :
Options -Indexes
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([a-z.]+)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php [L]
AddType application/x-httpd-php .php .phtml
Jak sis mohl všimnout, přepsal jsem RewriteCond a RewriteRule pro
přidání www.
První RewriteCond se splní, pokud na začátku URL není www.
Další ověřuje, jestli je v URL nějaký text.
A poté jen přepíše vše, a to za použití parametrů, které získal v
RewriteCondech.
Podmínka pro soubory funguje přesně tak, jak myslíš. Vezne se jméno
požadovaného souboru, a zjistí se, jestli to není soubor (!-f) nebo složka
(!-d) na serveru.
RewriteRule potom zjistí, jestli není přípona souboru mezi těmi, které
nemá přepisovat a pokud ne, přepíše ji tak, aby se návštěvníkovi
zobrazil index.php.
AddType přidá projetí PHP preprocesorem pro soubory typu php a phtml, před
tím, než se zobrazí návštěvníkovi.
Knihu o apache žádnou neznám (leda v angličtině Apache Cookbook), ale po
chvilce Googlování jsem narazil na http://knihy.cpress.cz/…erver-2.html
Zdar... nainstaloval jsem si tuhle UNISERVER s za boha jsem tam nemohl zprovoznit .htaccess nakonec jsem zjistil, že na začátku musí být tohle:
Options FollowSymLinks
nevím, zda to upotřebíš, ale prý to potřebují některé servery, aby jim rewrite fungovalo...
mne to funguje aj bez toho, ale idem pogoogliť čo to vlastne je
Je to nastavení, které říká serveru, že má následovat symbolické linky na soubory (a složky).
a aby ti to fungovalo, musis mat zavedeny mod_rewrite v konfiguracii Apache, inak ti ten .htaccess bude vyhadzovat chybu, ze nepozna danu direktivu pri nezavedenom module
direktiva RewriteEngine to iba zapina/vypina a je zavisla od zavedenia modulu mod_rewrite
toto som riešil tak pred rokom keď som si prvý raz nainštaloval WAMP, tam je to defaultne vypnuté (a aj posielanie súborov)
Zobrazeno 11 zpráv z 11.