2017-09-29 133 views
0

我试图为html,js和css服务预压缩的gzip/brotli文件。 使用以下代码。如何使用.htaccess服务预压缩的gzip/brotli文件

RewriteEngine on 

    # Brotli 
    # If the web browser accept brotli encoding… 
    RewriteCond %{HTTP:Accept-encoding} br 
    # …and the web browser is fetching a probably pre-compressed file… 
    RewriteCond %{REQUEST_URI} .*\.(css|html|js) 
    # …and a matching pre-compressed file exists… 
    RewriteCond %{REQUEST_FILENAME}.br -s 
    # …then rewrite the request to deliver the brotli file 
    RewriteRule ^(.+) $1.br 
    # For each file format set the correct mime type (otherwise brotli mime type is returned) and prevent Apache for recompressing the files 
    RewriteRule "\.css\.br$" "-" [T=text/css,E=no-brotli,E=no-gzip] 
    RewriteRule "\.html\.br$" "-" [T=text/html,E=no-brotli,E=no-gzip] 
    RewriteRule "\.js\.br$" "-" [T=application/javascript,E=no-brotli,E=no-gzip] 

    # Gzip 
    # If the web browser accept gzip encoding… 
    RewriteCond %{HTTP:Accept-Encoding} gzip 
    # …and the web browser is fetching a probably pre-compressed file… 
    RewriteCond %{REQUEST_URI} .*\.(css|html|js) 
    # …and a matching pre-compressed file exists… 
    RewriteCond %{REQUEST_FILENAME}.gz -s 
    # …then rewrite the request to deliver the gzip file 
    RewriteRule ^(.+) $1.gz 
    # For each file format set the correct mime type (otherwise gzip mime type is returned) and prevent Apache for recompressing the files 
    RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-brotli,E=no-gzip] 
    RewriteRule "\.html\.gz$" "-" [T=text/html,E=no-brotli,E=no-gzip] 
    RewriteRule "\.js\.gz$" "-" [T=application/javascript,E=no-brotli,E=no-gzip] 

    <FilesMatch "\.(css|html|js)\.br$"> 
     # Prevent mime module to set brazilian language header (because the file ends with .br) 
     RemoveLanguage .br 
     # Set the correct encoding type 
     Header set Content-Encoding br 
     # Force proxies to cache brotli & non-brotli files separately 
     Header append Vary Accept-Encoding 
    </FilesMatch> 
    <FilesMatch "\.(css|html|js)\.gz$"> 
     # Serve correct encoding type 
     Header set Content-Encoding gzip 
     # Force proxies to cache gzip & non-gzip files separately 
     Header append Vary Accept-Encoding 
    </FilesMatch> 

我Folderstructure看起来是这样的:

  • 的.htaccess
  • 的index.php
  • /CSS/
  • /css/main.css
  • /CSS /主。 css.gz
  • /css/main.css.br

但是我在使用上面的代码时得到了404s。

回答

0

设置RewriteBase修复它。

RewriteBase/
相关问题