318
数据统计:426个主题分类,12609个优秀站点,20个站点正在排队审核,312篇站长资讯
  • 本网站目录提供网站快速收录服务,无需添加友情链接,无需等待漫长审核,1元/站1元收录淘宝购买 客服:点击这里给我发消息

  • 当前位置:站长分类目录 » 站长资讯 » 建站经验 » 文章详细 订阅RssFeed

    Apache下htaccess的配置使用详解

    来源:站长分类目录 浏览:101次 时间:2022-03-16

    Apache下htaccess的配置使用详解

          看到群里很多前辈都在讨论.htaccess的用法,自己之前也小用过,只做了404的重定向,当然.htaccess的功能远不止这些,他还可以帮助我们做很多(比如:自定义错误页面、禁止目录被浏览、地址重定向、目录保护、改变默认首页索引、防止网站图片盗链 等)。今天我在本地localhostapachehtaccess做了详细的整理和测试。

          为什么要使用.htaccess?

          oophper.com答:很多网站都是租用服务器和虚拟主机的,其服务器的配置我们并不能改。当我们有特殊要求时,比如定义最简单的404(页面未找到)的错误页面,我们就只能通过apache配置的扩展配置(或者说是子配置)来更改扩展原服务器的配置。这个配置就是.htaccess文件,他想但与apache下的http.conf文件的延续。

          使用.htaccess的条件

          oophper.com答:要在服务器上使用.htaccess文件配置,必须要求服务器开通对于的支持。两个条件:1.mod_rewrite模块开启;2. AllowOverride All

          要使用.htaccessapachehttp.conf该如何配置

             oophper.com答:很简单,只需要改两个地方:

    1. 将工作目录下的AllowOverride None 改为AllowOverride All。具体位置为你可以在http.conf下搜索AllowOverride controls what directives may be placed in .htaccess files. 该句下面的那个AllowOverride就是要改的位置。
    2. 开启.mod_rewrite模块。将#LoadModule rewrite_module modules/mod_rewrite.so前的#去掉即可。

     

           .htaccess实现各种功能的配置写法

    自定义错误页面

    oophper.com配置解答:

    写法:ErrorDocument 错误代码 空格 /目录名/文件名.扩展名

    例子:ErrorDocument 404 /404.html

            ErrorDocument 500 /help/errors/internalerror.html

    这样当文件未找到(404)或者服务器错误(500)时就会自动跳转至写好的提示页,有助于网站的用户体验。至少不会显示浏览器默认的提示信息,也可以防止服务器的信息泄露,既安全又友好。

    禁止/允许目录被浏览

    oophper.com配置解答:

    写法:IndexIgnore */*

                    很多服务器本身就已经禁止了目录被浏览并会提示。如果你在建站初期调试,想要开通此功能也未尝不可。只需要添加一句:

    写法: Options +Indexes

     

    页面或网址重定向

    oophper.com配置解答:

    写法1Redirect permanent [old directory or file name][空格][new directory or file name]

    其中permanent(永久)是为了告诉搜索引擎,老的链接已经移到新链接了。

    写法2Redirect /旧页面地址[空格]新页面的地址

    例子:

    Redirect permanent /oldhtmlfile.htm

     

    这可以帮助我们将用户引导到我们想让其看到的页面,也可以用作域名的重定向。有时候某些目录我们不想对用户开放,比如cache目录禁止用户直接输入地址访问,我们就可以用htaccess的重定向配置将其直接带到首页。

    改变默认首页索引页

    oophper.com配置解答:

    写法:

    DirectoryIndex homepage.htm

    DirectoryIndex somepage.htm

     

    多个文件名之间可以用空格隔开,这样就会按顺序将所有列出的文件列为可能的索引文件记住,每一个入口只能写在一行.

    DirectoryIndex homapage.html somepage.html myindexpage.html anything.html

     

    防止网页图片被盗连

    oophper.com配置解答:

    很多服务器供应商都是限流量和限cpu的。特别是流量,每个月超过了限制的流量就需要支付额外的大洋,而自己网站的图片被盗链这就相当于别人耗了你的流量却并没有给你带来流量。那是相当郁闷的。自然要防止被盗连。同时有些隐私比如用户的相册如果被盗连了可能泄露隐私,这也是不好的。你可以看到百度空间,sina博客,qq空间均作了防盗链的处理。

    写法:

    RewriteEngine on

    RewriteCond %{HTTP_REFERER} !^$

    RewriteCond %{HTTP_REFERER} !^http://(www\.)?your-domain.com/.*$ [NC]

    RewriteRule .(gif|jpg)$ - [F]

    在上面的代码中,将[your-domain]用你真实的域名代替[没有www],对于(www.\),用实际的子域名代替(sub-domain.\)

    或者用图片代替之,这样别人盗链的图片就会显示你所要提示的图片。

    RewriteEngine on

    RewriteCond % !^$

    RewriteCond % !^http://(www/.)?域名.com/.*$ [NC]

    RewriteRule /.(gif|jpg)$ 域名.com/替代图片文件名 [R,L]

     

    使用.htaccess文件的不足

    1、性能 AllowOverride启用了使用.htaccess文件,则apache需要在每个目录中查找.htaccess文件。因此会导致性能下降。另外对每一个请求,都需要读取一次.htaccess文件,还有 apache必须在所有上级的目录中查找.htaccess文件以使有效的指令都起作用,比如如果客户端请求/www/htdocs/help中的页面。服务器必须查找
    /.htaccess
    /www/.htaccess
    /www/htdocs/.htaccess
    /www/htdocs/help/.htaccess

    四个额外文件(即使这些文件都不存在,当然你可以仅仅允许根目录使用.htaccess文件),也就是说目录深度越深,则访问的额外文件越多,性能越低了。

    2、安全
    由于在/www/htdocs/help下面的.htaccess文件中放置指令与在主配置文件中中放置相同的指令是完全等效的,这样允许用户自己修改服务器配置,
    可能就会导致某些不愿意发生的意想不到的修改,这样就会造成服务器安全问题。这样你就必须考虑是否设置AllowOverride None来完全禁用.htaccess文件。

    版权声明:
    1、本文内容由网友自发贡献,版权归原作者所有。
    2、本站仅提供文章发布平台,文章的内容与本站无关,请真伪自辩,本站不承担相应法律责任。
    3、如发现本站有涉嫌抄袭侵权的内容,请举报并提供相关证据,一经查实,本站将立刻删除侵权内容。
    4、转载请注明本文地址:http://www.z-ml.com/artinfo/84.html