#============ 
# Di server yg ada Apache, gunakan file ini untuk menghapus index.php dari url OpenSID,
# dan untuk mengamankan folder desa.
# Untuk mengaktifkan, ubah nama file ini menjadi .htaccess,
# Sesudah aktif, misalnya, modul Web bisa dipanggil dengan http://localhost/first.
# Untuk menggunakan fitur ini, pastikan konfigurasi Apache di server SID
# mengizinkan penggunaan .htaccess
#============

RewriteEngine on
RewriteBase /

# Apabila menggunakan sub-domain atau sub-folder gunakan bentuk berikut
# RewriteBase /nama-sub-folder/

# General dirs / files
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

# Prevent access to all files within the folder
RewriteRule ^(\.git|\.github) - [F,L]
RewriteRule ^(\bin) - [F,L]

# Protect Folder Not Index
Options All -Indexes

# Paksa menggunakan https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Restrict access to DotFiles (like .htaccess, .gitignore....)
<FilesMatch "^\.">
    Order allow,deny
    Deny from all
</FilesMatch>

# Restrict access to system files
<FilesMatch "^(composer.json|composer.lock|mitra|app_key|phpunit.xml|phpunit.xml.dist|rector)">
    Order allow,deny
    Deny from all
</FilesMatch>

<FilesMatch "(?i)\.(zip|rar)$">
  Deny from all
</FilesMatch>

# Expire Caching
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access 1 year"
  
  #Font
  AddType application/Cabin-Regular-TTF .ttf
  AddType application/fontawesome-webfont .woff2
  
  # Images
  ExpiresByType image/jpg "access 1 year"
  ExpiresByType image/jpeg "access 1 year"
  ExpiresByType image/gif "access 1 year"
  ExpiresByType image/png "access 1 year"
  ExpiresByType image/webp "access 1 year"
  ExpiresByType image/svg+xml "access 1 year"
  ExpiresByType image/x-icon "access 1 year"

  # Video
  ExpiresByType video/mp4 "access 1 year"
  ExpiresByType video/mpeg "access 1 year"

  # CSS, JavaScript
  ExpiresByType text/css "access 1 year"
  ExpiresByType application/javascript "access 1 year"
  ExpiresByType application/x-javascript "access 1 year"

  # Others
  ExpiresByType application/pdf "access 1 year"
  ExpiresByType application/x-shockwave-flash "access 1 year"
  ExpiresByType application/font-woff "access 1 year" 
  ExpiresByType application/font-woff2 "access 1 year"
</IfModule>

# ===================
# ModSecurity Whitelist Endpoint
# ===================

<IfModule security2_module>
    # Whitelist ModSecurity
    SecRule REQUEST_URI "@beginsWith /pelanggan/pemesanan" "id:10001,phase:1,pass,nolog,ctl:ruleEngine=Off"
</IfModule>
