Binatomy
Web 服务器

.htaccess 生成器

Quickly build .htaccess rules for Apache: HTTPS, www redirect, compression, caching and more

选项

# --- Rewrite rules ---
<IfModule mod_rewrite.c>
  RewriteEngine On

  # Force HTTPS
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

  # Redirect www to non-www
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
</IfModule>

# --- Gzip compression ---
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
  AddOutputFilterByType DEFLATE application/javascript application/x-javascript application/json
  AddOutputFilterByType DEFLATE application/xml application/rss+xml image/svg+xml
</IfModule>

# --- Browser caching ---
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType image/svg+xml "access plus 1 year"
  ExpiresByType image/x-icon "access plus 1 year"
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"
  ExpiresByType text/html "access plus 1 day"
</IfModule>
常见问题

常见问题

Everything you need to know about the .htaccess file

What is the .htaccess file and where does it go?

The .htaccess file is an Apache web server configuration file that lets you define directory-level rules: redirects, URL rewriting, security, caching and compression. Place it in your site's root folder (usually public_html or www); it affects that folder and its subfolders. The name starts with a dot and has no extension.

Does it work on Nginx?

No, the .htaccess file is specific to Apache (and compatible servers like LiteSpeed). Nginx does not use .htaccess: the same rules must be translated into the server configuration (server/location blocks in nginx.conf). If your host uses Nginx, this file will have no effect.

My site shows a 500 error after uploading the file, why?

A 500 error after editing .htaccess usually means a required module (mod_rewrite, mod_deflate, mod_expires) is not enabled on the server, or there is a syntax error. The rules here are wrapped in <IfModule> blocks precisely to avoid crashes if a module is missing. If it persists, remove rules one at a time to find the culprit and check with your host which modules are active. Always back up the previous file.

htaccess 是什么文件?

它是 Apache 上给单个目录设定规则的配置文件:跳转、地址重写、缓存、压缩和访问限制。文件放在站点的根目录里。

在 Nginx 上也能用吗?

不能。htaccess 只有 Apache 和 LiteSpeed 这类兼容服务器会读。在 Nginx 上,同样的规则要写进服务器配置的 server 和 location 块里。

改完之后网站报 500 错误怎么办?

通常是 mod_rewrite、mod_deflate 或 mod_expires 其中一个模块没装,或者有语法错误。所以生成的规则都放在 IfModule 块里,模块不在时会自动失效。