125 lines
5.3 KiB
ApacheConf
125 lines
5.3 KiB
ApacheConf
# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
|
|
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
|
|
# https://www.prestashop-project.org
|
|
|
|
# Prevent directory listings
|
|
Options -Indexes
|
|
|
|
<IfModule mod_rewrite.c>
|
|
<IfModule mod_env.c>
|
|
SetEnv HTTP_MOD_REWRITE On
|
|
</IfModule>
|
|
|
|
RewriteEngine on
|
|
# Sets the HTTP_AUTHORIZATION header removed by apache
|
|
RewriteCond %{HTTP:Authorization} .
|
|
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
|
|
|
|
|
|
|
#Domain: localhost
|
|
RewriteRule . - [E=REWRITEBASE:/o2w-pres/]
|
|
RewriteRule ^api(?:/(.*))?$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
|
|
RewriteRule ^upload/.+$ %{ENV:REWRITEBASE}index.php [QSA,L]
|
|
|
|
# Rewrites for product images (support up to < 10 million images)
|
|
RewriteCond %{HTTP_HOST} ^localhost$
|
|
RewriteRule ^(([\d])(?:\-[\w-]*)?)/.+(\.(?:jpe?g|webp|png|avif))$ %{ENV:REWRITEBASE}img/p/$2/$1$3 [L]
|
|
RewriteCond %{HTTP_HOST} ^localhost$
|
|
RewriteRule ^(([\d])([\d])(?:\-[\w-]*)?)/.+(\.(?:jpe?g|webp|png|avif))$ %{ENV:REWRITEBASE}img/p/$2/$3/$1$4 [L]
|
|
RewriteCond %{HTTP_HOST} ^localhost$
|
|
RewriteRule ^(([\d])([\d])([\d])(?:\-[\w-]*)?)/.+(\.(?:jpe?g|webp|png|avif))$ %{ENV:REWRITEBASE}img/p/$2/$3/$4/$1$5 [L]
|
|
RewriteCond %{HTTP_HOST} ^localhost$
|
|
RewriteRule ^(([\d])([\d])([\d])([\d])(?:\-[\w-]*)?)/.+(\.(?:jpe?g|webp|png|avif))$ %{ENV:REWRITEBASE}img/p/$2/$3/$4/$5/$1$6 [L]
|
|
RewriteCond %{HTTP_HOST} ^localhost$
|
|
RewriteRule ^(([\d])([\d])([\d])([\d])([\d])(?:\-[\w-]*)?)/.+(\.(?:jpe?g|webp|png|avif))$ %{ENV:REWRITEBASE}img/p/$2/$3/$4/$5/$6/$1$7 [L]
|
|
RewriteCond %{HTTP_HOST} ^localhost$
|
|
RewriteRule ^(([\d])([\d])([\d])([\d])([\d])([\d])(?:\-[\w-]*)?)/.+(\.(?:jpe?g|webp|png|avif))$ %{ENV:REWRITEBASE}img/p/$2/$3/$4/$5/$6/$7/$1$8 [L]
|
|
RewriteCond %{HTTP_HOST} ^localhost$
|
|
RewriteRule ^(([\d])([\d])([\d])([\d])([\d])([\d])([\d])(?:\-[\w-]*)?)/.+(\.(?:jpe?g|webp|png|avif))$ %{ENV:REWRITEBASE}img/p/$2/$3/$4/$5/$6/$7/$8/$1$9 [L]
|
|
# Rewrites for category images
|
|
RewriteCond %{HTTP_HOST} ^localhost$
|
|
RewriteRule ^c/([\d]+)(|_thumb)(\-[\.*\w-]*)/.+(\.(?:jpe?g|webp|png|avif))$ %{ENV:REWRITEBASE}img/c/$1$2$3$4 [L]
|
|
RewriteCond %{HTTP_HOST} ^localhost$
|
|
RewriteRule ^c/([a-zA-Z_-]+)(|_thumb)(-[\d]+)?/.+(\.(?:jpe?g|webp|png|avif))$ %{ENV:REWRITEBASE}img/c/$1$2$3$4 [L]
|
|
# AlphaImageLoader for IE and fancybox
|
|
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ %{ENV:REWRITEBASE}js/jquery/plugins/fancybox/images/$1.$2 [L]
|
|
|
|
# Send all other traffic to dispatcher
|
|
RewriteCond %{REQUEST_FILENAME} -s [OR]
|
|
RewriteCond %{REQUEST_FILENAME} -l [OR]
|
|
RewriteCond %{REQUEST_FILENAME} -d
|
|
RewriteRule ^.*$ - [NC,L]
|
|
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
|
|
</IfModule>
|
|
|
|
# Serve fonts properly and avoid CORS issues
|
|
AddType application/vnd.ms-fontobject .eot
|
|
AddType font/ttf .ttf
|
|
AddType font/otf .otf
|
|
AddType application/font-woff .woff
|
|
AddType font/woff2 .woff2
|
|
<IfModule mod_headers.c>
|
|
<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|svg)$">
|
|
Header set Access-Control-Allow-Origin "*"
|
|
</FilesMatch>
|
|
</IfModule>
|
|
|
|
# Protect sensitive files from being accessed directly
|
|
<FilesMatch "^(composer\.lock|\.git.*|\.env.*)$">
|
|
# Apache 2.2
|
|
<IfModule !mod_authz_core.c>
|
|
Order deny,allow
|
|
Deny from all
|
|
</IfModule>
|
|
|
|
# Apache 2.4
|
|
<IfModule mod_authz_core.c>
|
|
Require all denied
|
|
</IfModule>
|
|
</FilesMatch>
|
|
|
|
# Cache control for static files
|
|
<IfModule mod_expires.c>
|
|
ExpiresActive On
|
|
AddType image/webp .webp
|
|
ExpiresByType image/webp "access plus 1 month"
|
|
ExpiresByType image/avif "access plus 1 month"
|
|
ExpiresByType image/gif "access plus 1 month"
|
|
ExpiresByType image/jpeg "access plus 1 month"
|
|
ExpiresByType image/png "access plus 1 month"
|
|
ExpiresByType text/css "access plus 1 week"
|
|
ExpiresByType text/javascript "access plus 1 week"
|
|
ExpiresByType application/javascript "access plus 1 week"
|
|
ExpiresByType application/x-javascript "access plus 1 week"
|
|
ExpiresByType image/x-icon "access plus 1 year"
|
|
ExpiresByType image/svg+xml "access plus 1 year"
|
|
ExpiresByType image/vnd.microsoft.icon "access plus 1 year"
|
|
ExpiresByType application/font-woff "access plus 1 year"
|
|
ExpiresByType application/x-font-woff "access plus 1 year"
|
|
ExpiresByType font/woff2 "access plus 1 year"
|
|
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
|
|
ExpiresByType font/opentype "access plus 1 year"
|
|
ExpiresByType font/ttf "access plus 1 year"
|
|
ExpiresByType font/otf "access plus 1 year"
|
|
ExpiresByType application/x-font-ttf "access plus 1 year"
|
|
ExpiresByType application/x-font-otf "access plus 1 year"
|
|
</IfModule>
|
|
|
|
# Remove Etag header as this can cause issues with caching
|
|
<IfModule mod_headers.c>
|
|
Header unset Etag
|
|
</IfModule>
|
|
FileETag none
|
|
|
|
# Enable GZIP compression for text, HTML, JavaScript, CSS, fonts and SVG files
|
|
<IfModule mod_deflate.c>
|
|
<IfModule mod_filter.c>
|
|
AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/x-javascript font/ttf application/x-font-ttf font/otf application/x-font-otf font/opentype image/svg+xml
|
|
</IfModule>
|
|
</IfModule>
|
|
|
|
#If rewrite mod isn't enabled
|
|
ErrorDocument 404 /o2w-pres/index.php?controller=404
|
|
|
|
# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again |