htaccess 功能强大,但是设置也极为复杂,多数我们网站的功能都需要依靠这个文件,这篇给大家分享 5 个 htaccess 设置技巧。
我们尝试我们的代码推到生产服务器,而无需隐藏文件和导演,像我们修改系统的董事,但是这并不总是发生。 这段代码可以防止那些文件被访问:
- <IfModule mod_rewrite.c>
- RewriteCond %{SCRIPT_FILENAME} -d [OR]
- RewriteCond %{SCRIPT_FILENAME} -f
- RewriteRule "(^|/)\." - [F]
- </IfModule>
黑客不应该得到这些文件,所以现在他们不能的能力!
有一些我们知道我们想要的出路压缩,并与mod_deflate模块,我们可以直接在服务器这样做的文件类型:
- <IfModule mod_deflate.c>
-
- # Compress all output labeled with one of the following MIME-types
- # (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
- # and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines
- # as `AddOutputFilterByType` is still in the core directives).
- <IfModule mod_filter.c>
- AddOutputFilterByType DEFLATE application/atom+xml \
- application/javascript \
- application/json \
- application/rss+xml \
- 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/css \
- text/html \
- text/plain \
- text/x-component \
- text/xml
- </IfModule>
-
- </IfModule>
我喜欢它是多么容易通过 MIME 类型。通过 htaccess 文件来压缩文件。 少量的代码,大规模增强对所有用户。
我不知道我会如何回应大都有当我第一次张贴了关于从远程 CDN 地址加载 CSS 样式字体 。 他们是为人们很大的,令人困惑的问题,但 HTML5 BP 也有一个解决方案:
- <IfModule mod_headers.c>
- <FilesMatch "\.(eot|otf|ttc|ttf|woff)$">
- Header set Access-Control-Allow-Origin "*"
- </FilesMatch>
- </IfModule>
字体是最好的服务关闭的CDN所以现在你可以这样做没有问题!
图片通常是冷静地从不同的域服务,但如果你想访问他们用帆布的数据,你就麻烦了。 这个片段可让您透过画布获得原始图像数据:
- <IfModule mod_setenvif.c>
- <IfModule mod_headers.c>
- <FilesMatch "\.(cur|gif|ico|jpe?g|png|svgz?|webp)$">
- SetEnvIf Origin ":" IS_CORS
- Header set Access-Control-Allow-Origin "*" env=IS_CORS
- </FilesMatch>
- </IfModule>
- </IfModule>
之后你得到的图像数据,你可以添加过滤器和更多。
Expires 头部都在你的文件设置长缓存过期的真棒方式。 你的静态文件 CSS、图片、JavaScript等,设置长的过期时间可以是一个巨大的性能提升。
- <IfModule mod_expires.c>
-
- ExpiresActive on
- ExpiresDefault "access plus 1 month"
-
- # CSS
- ExpiresByType text/css "access plus 1 year"
-
- # Data interchange
- ExpiresByType application/json "access plus 0 seconds"
- ExpiresByType application/xml "access plus 0 seconds"
- ExpiresByType text/xml "access plus 0 seconds"
-
- # Favicon (cannot be renamed!) and cursor images
- ExpiresByType image/x-icon "access plus 1 week"
-
- # HTML components (HTCs)
- ExpiresByType text/x-component "access plus 1 month"
-
- # HTML
- ExpiresByType text/html "access plus 0 seconds"
-
- # JavaScript
- ExpiresByType application/javascript "access plus 1 year"
-
- # Manifest files
- ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
- ExpiresByType text/cache-manifest "access plus 0 seconds"
-
- # Media
- ExpiresByType audio/ogg "access plus 1 month"
- ExpiresByType image/gif "access plus 1 month"
- ExpiresByType image/jpeg "access plus 1 month"
- ExpiresByType image/png "access plus 1 month"
- ExpiresByType video/mp4 "access plus 1 month"
- ExpiresByType video/ogg "access plus 1 month"
- ExpiresByType video/webm "access plus 1 month"
-
- # Web feeds
- ExpiresByType application/atom+xml "access plus 1 hour"
- ExpiresByType application/rss+xml "access plus 1 hour"
-
- # Web fonts
- ExpiresByType application/font-woff "access plus 1 month"
- ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
- ExpiresByType application/x-font-ttf "access plus 1 month"
- ExpiresByType font/opentype "access plus 1 month"
- ExpiresByType image/svg+xml "access plus 1 month"
-
- </IfModule>
你可能会问自己有关更新您的文件和问题的新文件的版本不被更新。 添加一个查询字符串到您的文件的 URL 和文件版本将通过客户端在适当的时候进行下载。
HTML5 的样板是有用的代码一个金矿。 即使你不想包括它的所有项目中,花几分钟检查出的 CSS、htaccess 和 JavaScript 代码吧为您提供,它可以教你的技术能在您的职业生涯随身携带。