WordPress网站无法启用Gzip:添加.htaccess代码后出现应用错误
我之前在000webhost的免费主机折腾WordPress的时候也碰到过类似的坑,给你几个实际可行的排查和解决思路:
先确认mod_deflate模块是否被主机支持
000webhost的免费套餐默认可能没有启用mod_deflate模块,这时候你写的<IfModule mod_deflate.c>代码块不仅起不到压缩作用,还会导致.htaccess解析出错,触发应用错误。你可以先把这段Gzip代码全部注释掉(或者暂时删掉),然后尝试登录网站,如果恢复正常,那基本就是模块未启用的问题。检查你的Gzip代码是否完整
你贴出来的代码最后是AddOutputFilterByType DEFLATE a...,明显是没写完的状态,不完整的配置指令肯定会让.htaccess报错。如果要继续用mod_deflate的方式,试试用完整的代码(注意先确认主机支持):<IfModule mod_deflate.c> # 压缩常见文件类型 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 AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE font/opentype font/ttf font/eot font/otf # 兼容旧浏览器的bug BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>避开.htaccess,用WordPress插件替代
免费主机对.htaccess的配置通常有不少限制,手动改配置很容易踩坑。不如直接用专门的优化插件来做Gzip压缩,比如Autoptimize或者WP Super Cache,这些插件不仅能一键开启Gzip压缩,还能附带做CSS/JS合并、缓存优化等功能,完全不用手动碰.htaccess,省心又安全。逐步排查代码问题
如果一定要用.htaccess的方式,建议先恢复WordPress默认的.htaccess内容,然后一行一行添加Gzip代码,每加一行就测试登录是否正常,这样能快速定位到哪条指令导致了错误。
内容的提问来源于stack exchange,提问作者nuwan siriwardhana

