raksmart活动促销

分享

写回答

发帖

一般情况下,不应该使用.htaccess文件

国外虚拟主机 国外虚拟主机 3484 人阅读 | 2 人回复

发表于 2010-5-21 21:15:53 | 显示全部楼层 |阅读模式

一般情况下,不应该使用.htaccess文件,除非你对主配置文件没有访问权限。有一种很常见的误解,认为用户认证只能通过.htaccess文件实现,其实并不是这样,把用户认证写在主配置文件中是完全可行的,而且是一种很好的方法。
  .htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有 root权限的情况下。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在同一个机器上运行了多个用户站点,而又希望用户可以自己改变配置的情况下。
  虽然如此,一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件的<Directory>段中,而且更高效。
  避免使用.htaccess文件有两个主要原因。
  首先是性能。如果AllowOverride启用了.htaccess文件,则Apache需要在每个目录中查找.htaccess文件,因此,无论是否真正用到,启用.htaccess都会导致性能的下降。另外,对每一个请求,都需要读取一次.htaccess文件。
  还有,Apache必须在所有上级的目录中查找.htaccess文件,以使所有有效的指令都起作用(参见指令的生效),所以,如果请求/www/htdocs/example中的页面,Apache必须查找以下文件:
  /.htaccess
  /www/.htaccess
  /www/htdocs/.htaccess
  /www/htdocs/example/.htaccess
  总共要访问4个额外的文件,即使这些文件都不存在。(注意,这可能仅仅由于允许根目录"/"使用.htaccess ,虽然这种情况并不多。)
  其次是安全。这样会允许用户自己修改服务器的配置,这可能会导致某些意想不到的修改,所以请认真考虑是否应当给予用户这样的特权。但是,如果给予用户较少的特权而不能满足其需要,则会带来额外的技术支持请求,所以,必须明确地告诉用户已经给予他们的权限,说明AllowOverride设置的值,并引导他们参阅相应的说明,以免日后生出许多麻烦。
  注意,在/www/htdocs/example目录下的.htaccess文件中放置指令,与在主配置文件中<Directory /www/htdocs/example>段中放置相同指令,是完全等效的。
  /www/htdocs/example目录下的.htaccess文件的内容:
  AddType text/example .exm
  httpd.conf文件中摘录的内容:
  <Directory /www/htdocs/example>
  AddType text/example .exm
  </Directory>
  但是,把配置放在主配置文件中更加高效,因为只需要在Apache启动时读取一次,而不是在每次文件被请求时都读取。
  将AllowOverride设置为none可以完全禁止使用.htaccess文件:
  AllowOverride None

回答|共 2 个

diyxlqq

发表于 2010-5-21 21:22:56 | 显示全部楼层

这有点高深了,看不太懂

gypworks526

发表于 2010-5-22 08:14:55 | 显示全部楼层

您需要登录后才可以回帖 登录 | 注册

本版积分规则