# 1. To use URL Aliases you need to be running apache with mod_rewrite enabled. 

# 2. In your abantecart main directory rename file htaccess.txt to .htaccess

# 3. Edit file .htaccess. If abantecart is installed in yourdomain/ subfolder change configuration line  RewriteBase /  to  RewriteBase /subfolder/.
# Example:  yourdomain.com/store   use RewriteBase /store/ 
# Important to have / at the end of the line.

# 4. if htaccess and mode_rewrite still does not work - check and set apache2 webserver directive AllowOverride All for your virtual hosts

# For any support issues please visit: https://forum.abantecart.com

Options +SymLinksIfOwnerMatch

# Prevent Directory listing
Options -Indexes

# Prevent Direct Access to files
<IfModule !mod_authz_core.c>
    # Apache 2.2
    <FilesMatch "\.tpl$">
        Order deny,allow
        Deny from all
    </FilesMatch>
</IfModule>
<IfModule mod_authz_core.c>
    # Apache 2.4+
    <FilesMatch "\.tpl$">
        Require all denied
    </FilesMatch>
</IfModule>


RewriteEngine on

# Rewrite section for retina high-res images with @2x in the end of filename base on cookie HTTP_IS_RETINA
# To emulate Retina mode on your NON-Retina display, add HTTP_IS_RETINA cookie in your browser
RewriteCond %{HTTP_COOKIE} HTTP_IS_RETINA [NC]
RewriteCond %{REQUEST_FILENAME} !@2x
RewriteRule ^(.*)\.(gif|jpg|jpeg|png|webp|avif)$ $1@2x.$2
# if @2x isn't available fulfill the original request
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)@2x\.(gif|jpg|jpeg|png|webp|avif)$ $1.$2

# SEO URL Settings
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?_route_=$1 [L,QSA]

# SITE PERFORMANCE TUNING #
# Browser Caching, Compression and Headers cache control
# This is to manage browser cache and improve site loading 
# NOTE: If you do active development disable this as you will need to clear your browser cache manually

# Enable Compression
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
</IfModule>
<IfModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
# Leverage Browser Caching
<IfModule mod_expires.c>
  ExpiresActive On
  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/avif "access 1 year"
  ExpiresByType text/css "access 1 month"
  ExpiresByType text/html "access 1 month"
  ExpiresByType application/pdf "access 1 month"
  ExpiresByType text/x-javascript "access 1 month"
  ExpiresByType application/x-shockwave-flash "access 1 month"
  ExpiresByType image/x-icon "access 1 year"
  ExpiresDefault "access 1 month"
</IfModule>
<IfModule mod_headers.c>
  Header set Connection keep-alive
  <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf|webp|avif)$">
  Header set Cache-Control "max-age=2678400, public"
  </filesmatch>
  <filesmatch "\.(html|htm)$">
  Header set Cache-Control "max-age=7200, private, must-revalidate"
  </filesmatch>
  <filesmatch "\.(pdf)$">
  Header set Cache-Control "max-age=86400, public"
  </filesmatch>
  <filesmatch "\.(js)$">
  Header set Cache-Control "max-age=2678400, private"
  </filesmatch>
</IfModule>