.htaccess 文件是 Apache HTTP Server 中的一个配置文件,用于对目录级别的访问控制、URL 重写、错误处理等进行配置,下面列举一些常见的实用 .htaccess 配置示例:
禁止目录列表
防止用户看到目录下的文件列表:
Options -Indexes
禁用访问日志
禁用某个特定目录的访问日志记录:
SetEnvIf REQUEST_URI "^/nolog" nolog CustomLog /var/www/logs/access.log combined env=!nolog
限制 IP 地址访问
只允许特定 IP 地址访问:
Order Deny,Allow Deny from all Allow from 192.168.1.100
或者只拒绝特定 IP 地址:
Order Allow,Deny Allow from all Deny from 192.168.1.101
密码保护目录
使用基本认证来保护目录:
AuthType Basic AuthName "Restricted Area" AuthUserFile /path/to/.htpasswd Require valid-user
5. URL 重写(mod_rewrite)
将http://example.com/old-page
重定向到http://example.com/new-page
:
RewriteEngine On RewriteRule ^old-page$ new-page [R=301,L]
将http://example.com/old-page
内部重写到http://example.com/new-page
(不改变 URL):
RewriteEngine On RewriteRule ^old-page$ /new-page [L]
自定义错误页面
设置自定义的 404 错误页面:
ErrorDocument 404 /custom404.html
强制 HTTPS
将所有 HTTP 请求重定向到 HTTPS:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
限制文件类型上传
限制上传文件类型为图片和 PDF:
<FilesMatch "\.(jpg|jpeg|png|gif|pdf)$"> Order allow,deny Allow from all </FilesMatch>
设置缓存控制头
设置响应头以控制浏览器缓存:
<FilesMatch "\.(jpg|jpeg|png|gif|css|js)$"> Header set Cache-Control "max-age=31536000, public" </FilesMatch>
禁止特定文件类型的执行权限
禁止 PHP 文件在特定目录下执行:
<FilesMatch "\.php$"> Deny from all </FilesMatch>
启用 GZIP 压缩
启用 GZIP 压缩以加快传输速度:
<IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML, and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml </IfModule>
这些只是 .htaccess 文件中的一些常见配置示例,根据你的具体需求,你可以组合或修改这些配置以达到最佳效果,在使用 .htaccess 文件时,确保你的服务器已启用了AllowOverride
选项,以便能够应用这些配置。