We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 51020
    • 670 Posts
    Hi

    I manage several sites - all have very different custom htaccess files.
    Does anyone use a boilerplate file that optimises their sites the best?
    I have seen a 2 second difference in load speed by simply switching the files over!
      • 22840
      • 1,572 Posts
      Heres the one I use across most of the servers we use, just change domain on the uncommented sections to your domain, ( lines 25 & 26 )
      # MODX supports Friendly URLs via this .htaccess file. You must serve web
      # pages via Apache with mod_rewrite to use this functionality, and you must
      # change the file name from ht.access to .htaccess.
      #
      # Make sure RewriteBase points to the directory where you installed MODX.
      # E.g., "/modx" if your installation is in a "modx" subdirectory.
      #
      # You may choose to make your URLs non-case-sensitive by adding a NC directive
      # to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
      
      RewriteEngine On
      RewriteBase /
      
      
      
      # Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
      #RewriteCond %{HTTP_HOST} .
      #RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com [NC]
      #RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
      #
      # or for the opposite domain.com -> www.domain.com use the following
      # DO NOT USE BOTH
      #
      #RewriteCond %{HTTP_HOST} .
      RewriteCond %{HTTP_HOST} !^www\.domain.co\.uk [NC]
      RewriteRule (.*) http://www.domain.co.uk/$1 [R=301,L]
      
      
      
      # Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent 
      # https://www.domain.com when your cert only allows https://secure.domain.com
      #RewriteCond %{SERVER_PORT} !^443
      #RewriteRule (.*) https://example-domain-please-change.com/$1 [R=301,L]
      
      
      
      # The Friendly URLs part
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
      
      
      
      # Make sure .htc files are served with the proper MIME type, which is critical
      # for XP SP2. Un-comment if your host allows htaccess MIME type overrides.
      
      #AddType text/x-component .htc
      
      
      
      # If your server is not already configured as such, the following directive
      # should be uncommented in order to set PHP's register_globals option to OFF.
      # This closes a major security hole that is abused by most XSS (cross-site
      # scripting) attacks. For more information: http://php.net/register_globals
      #
      # To verify that this option has been set to OFF, open the Manager and choose
      # Reports -> System Info and then click the phpinfo() link. Do a Find on Page
      # for "register_globals". The Local Value should be OFF. If the Master Value
      # is OFF then you do not need this directive here.
      #
      # IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
      #
      # Your server does not allow PHP directives to be set via .htaccess. In that
      # case you must make this change in your php.ini file instead. If you are
      # using a commercial web host, contact the administrators for assistance in
      # doing this. Not all servers allow local php.ini files, and they should
      # include all PHP configurations (not just this one), or you will effectively
      # reset everything to PHP defaults. Consult www.php.net for more detailed
      # information about setting PHP directives.
      
      #php_flag register_globals Off
      
      
      
      # For servers that support output compression, you should pick up a bit of
      # speed by un-commenting the following lines.
      
      #php_flag zlib.output_compression On
      #php_value zlib.output_compression_level 5
      
      
      
      # The following directives stop screen flicker in IE on CSS rollovers. If
      # needed, un-comment the following rules. When they're in place, you may have
      # to do a force-refresh in order to see changes in your designs.
      
      #ExpiresActive On
      #ExpiresByType image/gif A2592000
      #ExpiresByType image/jpeg A2592000
      #ExpiresByType image/png A2592000
      #BrowserMatch "MSIE" brokenvary=1
      #BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
      #BrowserMatch "Opera" !brokenvary
      #SetEnvIf brokenvary 1 force-no-vary
      
      <IfModule mod_mime.c>
          AddType text/css .css
          AddType text/x-component .htc
          AddType application/x-javascript .js
          AddType application/javascript .js2
          AddType text/javascript .js3
          AddType text/x-js .js4
          AddType text/html .html .htm
          AddType text/richtext .rtf .rtx
          AddType image/svg+xml .svg .svgz
          AddType text/plain .txt
          AddType text/xsd .xsd
          AddType text/xsl .xsl
          AddType text/xml .xml
          AddType video/asf .asf .asx .wax .wmv .wmx
          AddType video/avi .avi
          AddType image/bmp .bmp
          AddType application/java .class
          AddType video/divx .divx
          AddType application/msword .doc .docx
          AddType application/vnd.ms-fontobject .eot
          AddType application/x-msdownload .exe
          AddType image/gif .gif
          AddType application/x-gzip .gz .gzip
          AddType image/x-icon .ico
          AddType image/jpeg .jpg .jpeg .jpe
          AddType application/json .json
          AddType application/vnd.ms-access .mdb
          AddType audio/midi .mid .midi
          AddType video/quicktime .mov .qt
          AddType audio/mpeg .mp3 .m4a
          AddType video/mp4 .mp4 .m4v
          AddType video/mpeg .mpeg .mpg .mpe
          AddType application/vnd.ms-project .mpp
          AddType application/x-font-otf .otf
          AddType application/vnd.oasis.opendocument.database .odb
          AddType application/vnd.oasis.opendocument.chart .odc
          AddType application/vnd.oasis.opendocument.formula .odf
          AddType application/vnd.oasis.opendocument.graphics .odg
          AddType application/vnd.oasis.opendocument.presentation .odp
          AddType application/vnd.oasis.opendocument.spreadsheet .ods
          AddType application/vnd.oasis.opendocument.text .odt
          AddType audio/ogg .ogg
          AddType application/pdf .pdf
          AddType image/png .png
          AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx
          AddType audio/x-realaudio .ra .ram
          AddType application/x-shockwave-flash .swf
          AddType application/x-tar .tar
          AddType image/tiff .tif .tiff
          AddType application/x-font-ttf .ttf .ttc
          AddType audio/wav .wav
          AddType audio/wma .wma
          AddType application/vnd.ms-write .wri
          AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw
          AddType application/zip .zip
      </IfModule>
      <IfModule mod_expires.c>
          ExpiresActive On
          ExpiresByType text/css A31536000
          ExpiresByType text/x-component A31536000
          ExpiresByType application/x-javascript A31536000
          ExpiresByType application/javascript A31536000
          ExpiresByType text/javascript A31536000
          ExpiresByType text/x-js A31536000
          ExpiresByType text/html A3600
          ExpiresByType text/richtext A3600
          ExpiresByType image/svg+xml A3600
          ExpiresByType text/plain A3600
          ExpiresByType text/xsd A3600
          ExpiresByType text/xsl A3600
          ExpiresByType text/xml A3600
          ExpiresByType video/asf A31536000
          ExpiresByType video/avi A31536000
          ExpiresByType image/bmp A31536000
          ExpiresByType application/java A31536000
          ExpiresByType video/divx A31536000
          ExpiresByType application/msword A31536000
          ExpiresByType application/vnd.ms-fontobject A31536000
          ExpiresByType application/x-msdownload A31536000
          ExpiresByType image/gif A31536000
          ExpiresByType application/x-gzip A31536000
          ExpiresByType image/x-icon A31536000
          ExpiresByType image/jpeg A31536000
          ExpiresByType application/json A31536000
          ExpiresByType application/vnd.ms-access A31536000
          ExpiresByType audio/midi A31536000
          ExpiresByType video/quicktime A31536000
          ExpiresByType audio/mpeg A31536000
          ExpiresByType video/mp4 A31536000
          ExpiresByType video/mpeg A31536000
          ExpiresByType application/vnd.ms-project A31536000
          ExpiresByType application/x-font-otf A31536000
          ExpiresByType application/vnd.oasis.opendocument.database A31536000
          ExpiresByType application/vnd.oasis.opendocument.chart A31536000
          ExpiresByType application/vnd.oasis.opendocument.formula A31536000
          ExpiresByType application/vnd.oasis.opendocument.graphics A31536000
          ExpiresByType application/vnd.oasis.opendocument.presentation A31536000
          ExpiresByType application/vnd.oasis.opendocument.spreadsheet A31536000
          ExpiresByType application/vnd.oasis.opendocument.text A31536000
          ExpiresByType audio/ogg A31536000
          ExpiresByType application/pdf A31536000
          ExpiresByType image/png A31536000
          ExpiresByType application/vnd.ms-powerpoint A31536000
          ExpiresByType audio/x-realaudio A31536000
          ExpiresByType image/svg+xml A31536000
          ExpiresByType application/x-shockwave-flash A31536000
          ExpiresByType application/x-tar A31536000
          ExpiresByType image/tiff A31536000
          ExpiresByType application/x-font-ttf A31536000
          ExpiresByType audio/wav A31536000
          ExpiresByType audio/wma A31536000
          ExpiresByType application/vnd.ms-write A31536000
          ExpiresByType application/vnd.ms-excel A31536000
          ExpiresByType application/zip A31536000
      </IfModule>
      <IfModule mod_deflate.c>
          <IfModule mod_headers.c>
              Header append Vary User-Agent env=!dont-vary
          </IfModule>
              AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json
          <IfModule mod_mime.c>
              # DEFLATE by extension
              AddOutputFilter DEFLATE js css htm html xml
          </IfModule>
      </IfModule>
      <FilesMatch "\.(css|htc|js|js2|js3|js4|CSS|HTC|JS|JS2|JS3|JS4)$">
          FileETag MTime Size
          <IfModule mod_headers.c>
              Header set Pragma "public"
              Header append Cache-Control "public, must-revalidate, proxy-revalidate"
          </IfModule>
      </FilesMatch>
      <FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|SVG|SVGZ|TXT|XSD|XSL|XML)$">
          FileETag MTime Size
          <IfModule mod_headers.c>
              Header set Pragma "public"
              Header append Cache-Control "public, must-revalidate, proxy-revalidate"
          </IfModule>
      </FilesMatch>
      <FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip|ASF|ASX|WAX|WMV|WMX|AVI|BMP|CLASS|DIVX|DOC|DOCX|EOT|EXE|GIF|GZ|GZIP|ICO|JPG|JPEG|JPE|JSON|MDB|MID|MIDI|MOV|QT|MP3|M4A|MP4|M4V|MPEG|MPG|MPE|MPP|OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|PNG|POT|PPS|PPT|PPTX|RA|RAM|SVG|SVGZ|SWF|TAR|TIF|TIFF|TTF|TTC|WAV|WMA|WRI|XLA|XLS|XLSX|XLT|XLW|ZIP)$">
          FileETag MTime Size
          <IfModule mod_headers.c>
              Header set Pragma "public"
              Header append Cache-Control "public, must-revalidate, proxy-revalidate"
          </IfModule>
      </FilesMatch>
      
      <IfModule filter_module>
          FilterDeclare   COMPRESS
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
          FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
          FilterChain     COMPRESS
          FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
        </IfModule>
      
      
      
      
      #Gzip
      <ifmodule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
      </ifmodule>
      #End Gzip
      
      
      <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>
      
      AddOutputFilterByType DEFLATE text/plain
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/xml
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE application/x-javascript

        • 53161
        • 130 Posts
        This one's pretty good -> https://github.com/h5bp/html5-boilerplate
        Not specifically for MODX tho.
          • 51020
          • 670 Posts
          Quote from: stefany at Jun 13, 2017, 03:51 PM
          This one's pretty good -> https://github.com/h5bp/html5-boilerplate
          Not specifically for MODX tho.

          Thanks - that's actually the basis of the one I use already with a few things removed - I just wondered if anyone had something specific to Modx that was more efficient.