.htaccess的基础知识

文章撰写者:
  • 托管指南
  • 更新:Jun 29,2013

了解服务器的.htaccess文件是Web设计和开发的关键组件

大多数业余Web托管客户端和新Web开发人员都认为任何服务器设置中最重要的部分是已安装的软件。 他们狂热地安装基于ASP或基于PHP的应用程序,希望创建由流行的软件和广泛的数据库单元格和表格控制的高级内容。 但在这一系列活动中,几乎每个开发人员最初都忽略了服务器本身最重要和最强大的文件之一。 该文件称为“.htaccess”文件,它控制所有形式的错误消息到受密码保护的页面,永久链接结构到无法看到网站内容的被阻止用户。

默认情况下,“。htaccess”文件驻留在服务器的根公共目录中。 在Linux服务器上,该目录几乎总是被称为“public_html”。 对于需要从此文件的强大功能中受益的子文件夹, 可以放置辅助“.htaccess”文件 在服务器本身的每个子文件夹和其他目录中。 具有“.htaccess”文件的目录中的每个文件或文件夹都会继承该文件的权限和准则,除非被文件的单独编码版本覆盖。 如果听起来很复杂,那是因为它是一种控制服务器行为的中等技术。 然而,这不是不可能学习的。 一旦开发人员或新手网络托管客户学习如何使用此文件控制他们的服务器,他们就会发现无法回到“.htaccess”文件是一个难以理解的麻烦,更不用说使用的日子了。

密码保护目录是一个带有.htaccess文件的Snap

Web托管服务器安全性是几乎每个客户在承诺任何特定托管公司或服务器技术之前都要考虑的事情。 在大多数情况下,Windows和Linux服务器同样安全,可以保留那些不应该拥有它的信息。 但就防御黑客和恶意网页脚本而言,情况才是真实的。 在密码保护特定文件或目录时,所有工作必须由.htaccess文件完成,该文件与服务器的技术或安全功能分开。

.htaccess文件有自己独特的保护这些目录的风格,正如其简单的逐行编程语言和技术所规定的那样。 在这种情况下,用户只需定义要保护的目录,然后设置访问文件本身中该目录所需的参数。 当通过典型的Web浏览器访问时,该密码可以仅应用于一个文件,整个目录或整个服务器本身。 文件或目录密码的简单单行设置在完全填写和启动时类似于下面的示例。

AuthUserFile /public_html/secure/files/.htpasswd
AuthGroupFile / dev / null
AuthName EnterPassword
基本进行AuthType
需要用户secureUser

这些代码行与一个名为“.htpasswd”的新文件配对。 此文件位于受保护的目录中,并包含用户名和密码,用户和密码将授予用户访问受保护信息的权限。 在上面的示例中,已指定只允许用户“secureUser”访问目录,并且必须输入所需的密码,该密码由“AuthName EnterPassword”代码行确定,该代码位于用户之上定义。

在将在受保护目录中创建的“.htpasswd”文件中,用户只需添加一行代码。 格式很简单; 每个用户和密码组合使用冒号分隔。 这意味着他们只需在文件中添加“user:password”即可。 在这种情况下,它将是“secureUser:securedirectorypassword1”作为示例。 这将定义所有可能的访问代码和用户名。 站点管理员当然可以在此列表中包含多个用户和密码,只要从“.htpasswd”文件中删除“require user secureUser”区别即可。 或者,他们可以为同一用户名定义多个密码,同时保留该代码行,确保如果从“.htpasswd”文件中删除正确的密码,则可以随时从某些个人或组撤消访问。

要了解有关此问题的更多信息,请阅读: 将.htpasswd与您的Linux共享主机帐户一起使用.

定义易于记忆的网站内容和静态页面链接

多产的“.htaccess”文件最广泛使用的当前用途之一是使用文件的参数来定义语义 - “固定链接“当使用WordPress或MovableType等内容管理软件时,对于网站内容和静态页面。这不仅可以帮助用户记住和重新加载网站内容,还可以提高网站在主要搜索引擎上的搜索排名。这些搜索引擎使用语义友好的URL来确定任何给定页面上的内容以及内容是否与URL匹配。标题 - URL匹配表示更多权限,用户更有可能找到他们正在寻找的信息。适当的,网站排名更高使用固定链接结构时的主要搜索引擎。

对于已将WordPress安装到其站点服务器的用户,在安装过程中添加以下行几乎是一项要求 - 尤其是对于3.0及更新版本的更新版本的软件。 代码行看起来与下面的示例完全相同,并且是全球超过60百万自托管WordPress客户的标准。

RewriteEngine On
RewriteBase指令/
RewriteCond%{REQUEST_FILENAME}!-F
的RewriteCond%{REQUEST_FILENAME}-D!
重写规则。 /的index.php [L]

同样,很容易看到“.htaccess”文件编程指令的逐行结构。 这几行简单的代码告诉服务器使用WordPress“index.php”文件作为源自内容管理软件解决方案本身的所有URL的基础。 使用该文件作为基础,并将条目标题重写为永久链接,URL重写基本上将数据库查询与文件权限相结合,以创建“友好”URL。 修改“.htaccess”文件以重写其URL是目前领先的(如果不仅仅是)从PHP和基于ASP的内容管理软件解决方案构建友好URL的方法。

将搜索引擎引导到最近在本地或远程重新定位的内容

虽然永久链接旨在消除随机重定位内容和密集重定向的过程,但它们并未完全消除该问题。 实际上,永久链接可以在任何内容管理解决方案的控制面板中进行管理; 用户更改固定链接结构的那一刻,CMS软件范围内的所有内容都可能丢失,并向搜索引擎和用户抛出错误。 这可以通过非常简单的“.htaccess”代码行来解决,该代码重定向客户并向主要搜索引擎抛出“不可见”错误。 代码是这样的:

重定向301 / archive / / past-entries /

此重定向将旧网址和新网址与首先列出的旧网址并排放置。 它指示服务器在浏览器和搜索引擎“蜘蛛”中抛出301重定向错误,但最终用户从未看到此错误。 相反,301重定向是在幕后发生的不可见错误。 当用户自动进入新路径和新内容时,浏览器和搜索引擎会理解“301”意味着“永久移动”。 浏览器和遇到此错误的任何搜索引擎都会立即更新其记录以反映新的URL,并立即删除旧的URL。

这是在不丢失客户的情况下转移到新域名的好方法。 旧服务器上的“.htaccess”文件可用于实际指向全新域名的内容,只需对上面显示的代码行稍作更改即可。 在这种情况下,301重定向代码不是指向同一服务器上的两个相对路径,而是如下所示:

重定向301 / http://www.your-domain-name.com

这指示服务器将根目录或任何子文件夹中的任何内容以与旧服务器上完全相同的路径发送到新域名。 所有更改都是实际的域名本身。 同样,因为它使用301错误代码,搜索引擎将自动更新其记录以反映新域名。 这不仅是一个很好的可用性工具,但它也可以防止网站失去其搜索引擎排名。 搜索引擎不会重新开始,而是会理解这是一个新位置的同一个网站。 他们将保持旧的感知和排名,管理员将从使用这种独特的域之间移动方法中受益匪浅。

从不可见的错误和重定向到站点访问者的实际错误页面

当然,“。htaccess”文件专门用于将用户重定向到新内容,同时无形地更新搜索引擎,但是当内容丢失,无法显示或编码时,此独特文件也可用于显示特定错误页面。一种错误阻止页面加载的方式。 这是通过根据服务器的三位错误代码指定要显示的特定页面来完成的。 这些代码集成到Apache和IIS等服务中,因此除了“.htaccess”文件之外,不需要进行任何配置。 下面的示例解决了世界上最常见的错误页面,称为缺失页面和目录的“404错误”。

ErrorDocument 404 /404.html

每当用户偶然发现不再存在的链接或已删除的子文件夹时,它们将自动被“.htaccess”文件重定向到信息丰富且有用的404错误页面,该页面可以自定义并由网站的管理员。 这是一种将它们带回折叠的好方法,而不是通过一个简单且不起眼的错误页面将它们发送出去,该页面不提供丢失页面的替代方案。

几乎每种类型的基于服务器的页面加载错误都可以完成相同的过程。 这包括401,403和500服务器错误,以及大多数用户遇到的典型“未找到页面”的错误。 请务必研究每个错误代码的含义,并为每个错误提供自定义编写的消息和网站设计,以便用户轻松返回现有网站内容。 这是确保即使网站的导航或逻辑故障转化为机遇和成功的最佳方式。

当所有其他方法失败时,禁止用户使用一些简单的代码行

在大多数情况下,“。htaccess”文件用于那些倾向于普通用户青睐的东西。 这包括错误页面,自定义重定向方法和“友好”永久链接URL以及其他强大功能。 但是,此文件也可用于确保某些用户完全被拒绝访问该网站。 这是一种很好的方式来禁止那些“垃圾”网站评论,经常导致其他读者之间的中断或争论,或者只是无法以负责任的方式处理他们的访问权限。

为了保持站点的完整性并确保其他读者不会因为只有几个坏苹果而感到沮丧,“。htaccess”文件允许禁止特定IP地址或整个范围(或“块”)的IP地址。 这意味着整个国家都可以被禁止,整个ISP都可以被禁止,或者整个州,社区或组织可能被迫去其他地方阅读他们的日常内容并造成麻烦。 当在网站的“.htaccess”文件中使用时,禁止用户的过程如下所示:

允许所有
从158.23.144.12否认
从24.100否认

在上面的示例中,指示站点允许来自所有IP地址的访问者,除了从IP地址158.23.144.12访问的访问者。 此外,24.100 IP地址范围内的所有访问者都被拒绝访问某个站点。 这个范围可能会禁止整个互联网服务提供商的客户群阅读网站的内容。 但请放心,在严峻的情况下,这有时是必要的。

拥抱.htaccess文件并使用一些Power Over Site功能

.htaccess文件的优点在于它允许服务器管理员控制被认为非常高级的设置或需要“root”访问服务器的设置。 此文件是管理访问,错误,重定向甚至URL结构和语义感的好方法。 掌握它是保护和授权网站的新访客和回访者的关键。

Jerry Low的文章

Geek爸爸,SEO数据迷,投资者和Web Hosting Secret的创始人。 自2004以来,杰瑞一直在建立互联网资产并在线赚钱。 他喜欢随性的涂鸦和尝试新食物。