1. Home
  2. Tehniline
  3. Näiteid .htaccess faili rewrite reeglitest

Näiteid .htaccess faili rewrite reeglitest

Kataloogilistingu lubamine

Options +Indexes

Teatud IP-aadressi(de) blokeerimine

<RequireAll>
    Require all granted
    Require not ip 1.2.3.4
    Require not ip 12.34.56.78
</RequireAll>

Päringute lubamine vaid ühelt konkreetselt IP-aadressilt

Require ip 1.2.3.4

Teatud USER_AGENT-i (näiteks paha Boti) blokeerimine

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} PahaBot
RewriteRule .* - [F]

Mitme USER_AGENT-i blokeerimine

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} PahaBot [OR]
RewriteCond %{HTTP_USER_AGENT} KuriScanner [OR]
RewriteCond %{HTTP_USER_AGENT} Võlts
RewriteRule .* - [F]

Keela ligipääs kindlale failile

<Files "keelatud.php">
    Order Allow,Deny
    Deny from all
</Files>

Lihtne ümbersuunamine

# Peadomeeni ümbersuunamine
Redirect 301 / https://www.example.ee/

# Aegunud lingi ümbersuunamine
Redirect 301 /aegunud-lk https://www.example.ee/uus-lk

Kõikide päringute suunamine ühe domeeni peale

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L]

Ilma www-ta algava domeeni suunamine www-ga algava peale

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.ee$ [NC]
RewriteRule (.*) https://www.example.ee/$1 [NC,R=301,L]

või:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]

www-ga algava domeeni suunamine ilma www-ta domeeni peale

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.ee$ [NC]
RewriteRule (.*) https://example.ee/$1 [NC,R=301,L]

või:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [NC,R=301,L]

Valitud ressurside (font’id, svg, css ja js failid) lubamine mõnelt teiselt, serveri omast erinevalt domeenilt (Cross-Origin Resource Sharing (CORS))

<IfModule mod_headers.c>
    <FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|svg|font.css|css|js)$">
        Header set Access-Control-Allow-Origin "https://www.example.ee"
    </FilesMatch>
</IfModule>

HSTS, Content Security Policy jt turvalisusega seotud päised

<IfModule mod_headers.c>
    Header set Strict-Transport-Security "max-age=31536000;includeSubDomains;preload" env=HTTPS
    
    Header set X-Frame-Options "DENY"
    Header set Content-Security-Policy "default-src https:; script-src https: 'unsafe-inline'; style-src https:'unsafe-inline'"
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Content-Type-Options nosniff
</IfModule>

Ainult Eesti IP aadressidelt päringute lubamine

order deny,allow
deny from all
allow from env=DZSP_IS_ESTONIAN_IP

Ainult Euroopa liidu riikidest ligipääsu lubamine

SetEnvIf MM_COUNTRY_CODE ^(AT|BE|BG|CZ|CY|DE|DK|EE|EL|ES|FI|FR|HR|HU|IE|IT|LT|LU|LV|MT|NL|PL|PT|RO|SE|SI|SK) EUROLIIT
order deny,allow
deny from all
allow from env=EUROLIIT

Ühe konkreetse riigi blokeerimine, näiteks Hiina (CN).

SetEnvIf MM_COUNTRY_CODE ^(CN) BlokeeritudRiik
Deny from env=BlokeeritudRiik

Ühe riigi (Soome) kasutajate suunamine teisele domeenile.

SetEnvIf MM_COUNTRY_CODE ^(FI) FINLAND
RewriteCond %{ENV:FINLAND} ^1$
RewriteRule .* http://www.example.fi%{REQUEST_URI} [R=301,L]

Serverites on kasutusel GeoLite2 andmebaas, mis on loodud MaxMind poolt ja mille saab alla laadida aadressilt https://www.maxmind.com.

Hooldusrežiim – suuna ajutiselt kõik päringud hooldusest teavitavale leheküljele

# Lisa vajadusel enne RewriteRule'i URI-d, mis peavad läbi pääsema
# Lisa oma internetiühenduse IP-aadress
RewriteCond %{REQUEST_URI} !/hooldus.html [NC]
RewriteCond %{REQUEST_URI} !/hooldus\.css [NC]
RewriteCond %{REQUEST_URI} !/hooldus\.jpg [NC]
RewriteCond %{REMOTE_ADDR} !90\.100\.100\.100
RewriteRule .* https://example.ee/hooldus.html [L]

PHP käivitamise keelamine ennetamaks turvaprobleeme

Options -ExecCGI
RemoveType .php .php3 .phtml .inc
RemoveHandler .php .php3 .phtml .inc

<FilesMatch "\.(?i:php|php3|phtml|inc)$">
    Require all denied
</FilesMatch>

<IfModule mod_php7.c>
    php_flag engine off
</IfModule>

Rewrite proxy kasutamine

Näites kuvatakse sinudomeen.ee/proxy/ alamkataloogi sisu automaatselt example.com domeenilt.

RewriteRule "^proxy/(.*)$" "http://www.example.com/$1" [P,L]

NB! Proxy päringuid saab teha vaid HTTP ühendustele ja iga päringu kohta läheb ka veebiserveri error logisse teavitus.

Pakkimise keelamine teatud päringutelt

Vaikimisi on kõik veebiserveri poolt serveeritud vastused pakitud. See aga võib segada töid, mis võtavad kaua aega (näiteks toodete import). Järgnev seadistus keelab pakkimisi kõikidelt  /import URL-ga algavatelt päringutelt.

Updated on 4. juuni 2023

Was this article helpful?

Related Articles