簡體   English   中英

如何啟用laravel 4 gzip?

[英]how to enable laravel 4 gzip?

我的 Laravel 4 項目中有兩個 .htaccess 文件,一個在 root 中,另一個在 public 文件夾中。我首先復制了這一行:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

因為我不想在域名后輸入 /public 並且它可以工作,但是我復制了在第二個 .htaccess 中啟用 gzip 的代碼,它會導致 500 內部服務器錯誤。 我從gziptest.com/faq復制了以下行,我還嘗試了許多其他文件,但沒有一個對我有用

   AddOutputFilterByType DEFLATE text/html
   AddOutputFilterByType DEFLATE text/plain
   AddOutputFilterByType DEFLATE text/xml
   AddOutputFilterByType DEFLATE application/x-javascript
   AddOutputFilterByType DEFLATE application/javascript
   AddOutputFilterByType DEFLATE text/javascript
   AddOutputFilterByType DEFLATE text/x-js
   AddOutputFilterByType DEFLATE text/css

   # Highest 9 - Lowest 1
   DeflateCompressionLevel 9

   # Skip browsers with known problems
   BrowserMatch ^Mozilla/4 gzip-only-text/html
   BrowserMatch ^Mozilla/4\.0[678] no-gzip
   BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

請幫我?

我遇到了同樣的問題,然后我去嘗試了html5樣板中的一些方法 ,它對我有用

這是代碼段:

<IfModule mod_deflate.c>

    # Force compression for mangled headers.
    # https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html

    <IfModule mod_setenvif.c>
        <IfModule mod_headers.c>
            SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
            RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
        </IfModule>
    </IfModule>

    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    # Map certain file types to the specified encoding type in order to
    # make Apache serve them with the appropriate `Content-Encoding` HTTP
    # response header (this will NOT make Apache compress them!).

    # If the following file types wouldn't be served without the appropriate
    # `Content-Enable` HTTP response header, client applications (e.g.:
    # browsers) wouldn't know that they first need to uncompress the response,
    # and thus, wouldn't be able to understand the content.

    # http://httpd.apache.org/docs/current/mod/mod_mime.html#addencoding

    <IfModule mod_mime.c>
        AddEncoding gzip              svgz
    </IfModule>

    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    # Compress all output labeled with one of the following media types.

    # IMPORTANT: For Apache versions below 2.3.7 you don't need to enable
    # `mod_filter` and can remove the `<IfModule mod_filter.c>` & `</IfModule>`
    # lines as `AddOutputFilterByType` is still in the core directives.

    <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE "application/atom+xml" \
                                      "application/javascript" \
                                      "application/json" \
                                      "application/ld+json" \
                                      "application/manifest+json" \
                                      "application/rdf+xml" \
                                      "application/rss+xml" \
                                      "application/schema+json" \
                                      "application/vnd.geo+json" \
                                      "application/vnd.ms-fontobject" \
                                      "application/x-font-ttf" \
                                      "application/x-web-app-manifest+json" \
                                      "application/xhtml+xml" \
                                      "application/xml" \
                                      "font/opentype" \
                                      "image/svg+xml" \
                                      "image/x-icon" \
                                      "text/cache-manifest" \
                                      "text/css" \
                                      "text/html" \
                                      "text/javascript" \
                                      "text/plain" \
                                      "text/vtt" \
                                      "text/x-component" \
                                      "text/xml"
    </IfModule>

</IfModule>

這是一個老問題,所以對OP可能沒有太大幫助,但是我在處理同一問題(修改.htaccess后出現500個內部服務器錯誤)時遇到了這個問題,並認為可能值得一提萬一其他人也遇到同樣的問題。 檢查錯誤日志后,我發現此錯誤:

...無效的命令“ AddOutputFilterByType”,可能是拼寫錯誤或由服務器配置中未包含的模塊定義的

因此,在Google搜索之后,我在Apache文檔中從2.2升級到2.4的過程中發現了一點:

無效命令'AddOutputFilterByType',可能是服務器配置中未包含的模塊拼寫錯誤或定義了-AddOutputFilterByType已從內核移至必須加載的mod_filter。

我正在運行2.4,所以我檢查了httpd.conf和未注釋的LoadModule filter_module modules/mod_filter.so ,並且成功了。

您可以嘗試這樣的操作(在您的.htaccess文件中):

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

<ifmodule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>

只需將gzip代碼放在re-write規則之后即可。 您也可以檢查此鏈接此軟件包

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM