当前位置 主页 > 服务器问题 > Linux/apache问题 >

    21个常用的apache .htaccess文件配置技巧分享

    栏目:Linux/apache问题 时间:2019-03-17 14:06

    这篇文章主要介绍了21个常用的apache .htaccess文件配置技巧分享,涵盖了网站中最常用的一些功能需求解决办法,需要的朋友可以参考下

    Apache Web 服务器可以通过 .htaccess 文件来操作各种信息,这是一个目录级配置文件的默认名称,允许去中央化的 Web 服务器配置管理。可用来重写服务器的全局配置。该文件的目的就是为了允许单独目录的访问控制配置,例如密码和内容访问。

    1. 定制目录的 Index 文件

    复制代码 代码如下:DirectoryIndex index.html index.php index.htm
    你可以使用上面的配置来更改目录的默认页面,例如你将这个脚本放在 foo 目录,则用户请求 /foo/ 时候就会访问 /foo/index.html。

    2. 自定义错误页

    复制代码 代码如下:ErrorDocument 404 errors/404.html
    当用户访问页面报错时,例如页面找不到你希望显示自定义的错误页面,你可以通过这种方法来实现。或者是动态的页面:
    复制代码 代码如下:ErrorDocument 404 /psych/cgi-bin/error/error?404

    3. 控制访问文件和目录的级别

    .htaccess 经常用来限制和拒绝访问某个文件和目录,例如我们有一个 includes 文件夹,这里存放一些脚本,我们不希望用户直接访问这个文件夹,那么通过下面的脚本可以实现:
    复制代码 代码如下:
    # no one gets in here!
    deny from all
    上述脚本是拒绝所有的访问,你也可以根据IP段来拒绝:
    # no nasty crackers in here!
    order deny,allow
    deny from all
    allow from 192.168.0.0/24
    # this would do the same thing..
    #allow from 192.168.0
    一般这些方法是通过防火墙来处理,但在一个生产环境中的服务器来说,这样的调整非常方便。
    有时候你只是想禁止某个ip访问:
    复制代码 代码如下:# someone else giving the ruskies a bad name..
    order allow,deny
    deny from 83.222.23.219
    allow from all

    4. 修改环境变量

    环境变量包含了服务器端 CGI 的一些扩展信息,可使用 SetEnv 和 UnSetEnv 进行设置以及取消设置.
    复制代码 代码如下:SetEnv SITE_WEBMASTER "Jack Sprat"
    SetEnv SITE_WEBMASTER_URI mailto:Jack.Sprat@characterology.com
         
    UnSetEnv REMOTE_ADDR

    5. 301 重定向

    如果你希望某个页面跳转到新的页面:
    复制代码 代码如下:Redirect 301 /old/file.html http://yourdomain.com/new/file.html
    下面可以实现对整个路径的重定向:
    复制代码 代码如下:RedirectMatch 301 /blog(.*) http://yourdomain.com/$1

    6. 通过 .htaccess 实现缓存策略

    通过设置在浏览器上缓存静态文件可以提升网站的性能:
    复制代码 代码如下:# year
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$">
    Header set Cache-Control "public"
    Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
    Header unset Last-Modified
    </FilesMatch>
    #2 hours
    <FilesMatch "\.(html|htm|xml|txt|xsl)$">
    Header set Cache-Control "max-age=7200, must-revalidate"
    </FilesMatch>
    <FilesMatch "\.(js|css)$">
    SetOutputFilter DEFLATE