5 个 htaccess 的设置使您的网站更快更安全 - 文章教程

5 个 htaccess 的设置使您的网站更快更安全

发布于 2018-03-04 字数 5599 浏览 1754 评论 0

htaccess 功能强大,但是设置也极为复杂,多数我们网站的功能都需要依靠这个文件,这篇给大家分享 5 个 htaccess 设置技巧。

5 个 htaccess 的设置使您的网站更快更安全

阻止访问隐藏文件和目录

我们尝试我们的代码推到生产服务器,而无需隐藏文件和导演,像我们修改系统的董事,但是这并不总是发生。 这段代码可以防止那些文件被访问:

<IfModule mod_rewrite.c>
    RewriteCond %{SCRIPT_FILENAME} -d [OR]
    RewriteCond %{SCRIPT_FILENAME} -f
    RewriteRule "(^|/)\." - [F]
</IfModule>

黑客不应该得到这些文件,所以现在他们不能的能力!

压缩送达文件按 MIME 类型

有一些我们知道我们想要的出路压缩,并与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 文件来压缩文件。 少量的代码,大规模增强对所有用户。

允许跨域字体与CORS

我不知道我会如何回应大都有当我第一次张贴了关于从远程 CDN 地址加载 CSS 样式字体 。 他们是为人们很大的,令人困惑的问题,但 HTML5 BP 也有一个解决方案:

<IfModule mod_headers.c>
    <FilesMatch "\.(eot|otf|ttc|ttf|woff)$">
        Header set Access-Control-Allow-Origin "*"
    </FilesMatch>
</IfModule>

字体是最好的服务关闭的CDN所以现在你可以这样做没有问题!

允许跨域与CORS图片

图片通常是冷静地从不同的域服务,但如果你想访问他们用帆布的数据,你就麻烦了。 这个片段可让您透过画布获得原始图像数据:

<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 代码吧为您提供,它可以教你的技术能在您的职业生涯随身携带。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

3048 文章
评论
84935 人气
更多

推荐作者