.htaccess文件是Apache服务器中非常重要的一个配置文件,一般情况下存在于网站的根目录,传统静态网站需要手工创 建.htaccess文件并进行规则书写; 现在较为先进的建站程序如 WordPress、Joomla!都可以自动生成.htacces文件并进行相关规则的自动书写。htaccess文件可以帮我们实现很多功能,极大的 扩展虚拟主机的功能:
- 伪静态
- 网页301重定向
- 自定义404错误页面
- 改变文件扩展名
- 允许/阻止特定的用户或者目录的访问
- ......
1. 重定向index.php到主域名(WordPress一般会自动书写)
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
2. 保护 .htaccess 自身的安全性,阻止用户通过读取和写入 .htaceess.
<files .htaccess> order allow,deny deny from all </files>3. 禁止浏览目录这将阻止服务器在没有 index 文件(如 index.html,index.php 等等)的情况下显示文件夹目录内容,阻止用户看到文件夹的内容使得更难对网站发动攻击
# disable directory browsing Options All -Indexes4. 保护 wp-config.php 文件,阻止用户读取和写入 WordPress 的配置文件。这里假设WordPress 是和.htaccess文件在同一个目录(根目录)的。
<files wp-config.php> Order deny,allow deny from all </files>5. 给特定类型文件指定 Vary: Accept-Encoding header,参阅【WordPress优化之Specify Vary: Accept-Encoding header】
<IfModule mod_headers.c> <FilesMatch ".(js|css|xml|gz)$"> Header append Vary Accept-Encoding </FilesMatch> </IfModule>6.给php文件指明Last-Modified header,参阅【WordPress优化之Specify a cache validator】
<IfModule mod_headers.c> <FilesMatch "\.(php)$"> Header set Last-Modified "Tue, 31 Aug 2010 00:00:00 GMT" </FilesMatch> </IfModule>7.去除Etag.
FileETag none8.设置浏览器缓存,参阅【WordPress优化之设置浏览器端缓存:Leverage browser caching】
#Expire Header ExpiresActive on ExpiresByType text/css "access 1 month" ExpiresByType text/plain "access 2 days" ExpiresByType text/html "access 2 days" ExpiresByType application/javascript "access 1 month" ExpiresByType image/jpeg "access 1 month" ExpiresByType image/x-icon "access 1 month" ExpiresByType image/gif "access 1 month" ExpiresByType image/png "access 1 month" ExpiresByType image/ico "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresDefault "access 1 month"注:
.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录
子目录中的.htaccess指令会覆盖父目录中的.htaccess指令
没有评论:
发表评论