25个有用的Apache ‘.htaccess’技巧,用于保护和自定义网站

网站是我们生活中重要的组成部分。它们用于扩展业务、分享知识等等。早期只能提供静态内容,随着动态客户端和服务器端脚本语言的引入以及现有静态语言如html向html5的发展,网站可以实现每一点动态性,未来预计还会有更多的发展。

随着网站的出现,就需要一个能够将这些网站展示给全球广大观众的单位。这一需求由提供托管网站手段的服务器来满足。这包括一系列服务器,如:Apache HTTP 服务器Joomla,和WordPress,允许用户托管他们的网站。

25 htaccess Tricks

想要托管网站的人可以创建自己的本地服务器,或者联系上述任何一个服务器管理员或其他服务器管理员来托管他的网站。但实际问题从这一点开始。网站的性能主要取决于以下因素:

  1. 网站消耗的带宽。
  2. 网站对抗黑客的安全性。
  3. 在通过数据库进行数据搜索时的乐观性。
  4. 在显示导航菜单和提供更多用户界面功能时的用户友好性。

除此之外,影响服务器成功托管网站的各种因素包括:

  1. 为特定网站实现的数据压缩量。
  2. 同时为多个请求同一或不同网站的客户提供服务的能力。
  3. 保护在网站上输入的机密数据,例如电子邮件、信用卡详细信息等。
  4. 允许越来越多的选项来增强网站的动态性。

本文讨论了服务器提供的一项功能,该功能有助于提高网站的性能,同时保护网站免受恶意机器人、热链接等侵害,即“.htaccess”文件。

什么是.htaccess?

htaccess(或超文本访问)是提供网站所有者控制服务器环境变量和其他参数以增强其网站功能文件的名称。这些文件可以存在于网站目录树中的任何目录中,并为该目录以及其中的文件和文件夹提供功能。

这些功能是什么?嗯,这些是服务器指令,即指示服务器执行特定任务的行,并且这些指令仅适用于放置此文件的文件夹内的文件和文件夹。这些文件默认是隐藏的,因为所有操作系统和网络服务器都配置为默认忽略它们,但使隐藏文件可见可以使您看到这个特殊的文件。可以控制哪种类型的参数是后续部分讨论的主题。

注意:如果.htaccess文件放在/apache/home/www/Gunjit/目录下,那么它将为该目录中的所有文件和文件夹提供指令,但是如果这个目录包含另一个名为/Gunjit/images/的文件夹,该文件夹中再次有一个.htaccess文件,那么这个文件夹中的指令将覆盖由主.htaccess文件(或该层次结构中的文件夹)提供的指令。

Apache服务器和.htaccess文件

Apache HTTP服务器(俗称Apache)是为了尊重其在战争策略上的卓越技能而以其命名的一个美洲原住民部落。它建立在C/C++和XML之上,是一个跨平台的Web服务器,基于NCSA HTTPd服务器,并在万维网的增长和发展中扮演了关键角色。

它主要用于UNIX系统,但也可用于包括FreeBSD、Linux、Windows、Mac OS、Novell Netware等在内的广泛平台。到2009年,Apache成为了首个服务于超过1亿个网站的服务器。

Apache服务器在www/目录下每个用户都有一个.htaccess文件。尽管这些文件是隐藏的,但在需要时可以使其可见。在www/目录下有多个文件夹,每个文件夹都对应一个以用户或所有者名字命名的网站。除此之外,您还可以在每个文件夹中有一个.htaccess文件,如上所述配置该文件夹中的文件。

在Apache服务器上配置.htaccess文件的方法如下…

Apache服务器的配置

可能有两个情况:

在自己的服务器上托管网站

如果未启用.htaccess文件,您可以通过简单地转到httpd.conf(Apache HTTP守护程序的默认配置文件)并找到<Directories>部分来启用.htaccess文件。

<Directory "/var/www/htdocs">

找到以下内容的行…

AllowOverride None 

并将其更正为。

AllowOverride All

现在,重新启动Apache,.htaccess将起作用。

在不同托管提供商服务器上托管网站

在这种情况下,最好咨询托管管理员,看他们是否允许访问.htaccess文件。

Apache Web服务器的25个“.htaccess”技巧

1. 如何在.htaccess文件中启用mod_rewrite

mod_rewrite选项允许您使用重定向,并隐藏真实URL,将其重定向到其他URL。这个选项非常有用,可以让您将冗长和长URL替换为短小易记的URL。

要允许mod_rewrite,只需在您的.htaccess文件的第一行添加以下行。

Options +FollowSymLinks

此选项允许您跟随符号链接,从而在网站上启用mod_rewrite选项。稍后将介绍用短小易记的URL替换URL。

2. 如何允许或拒绝访问网站

htaccess文件可以通过使用orderallowdeny关键字,允许或拒绝访问网站、文件夹或目录中的文件。

仅允许访问192.168.3.1 IP
Order Allow, Deny
Deny from All
Allow from 192.168.3.1

OR

Order Allow, Deny
Allow from 192.168.3.1

Order关键字指定了允许拒绝访问的处理顺序。对于上述的Order语句,首先会处理Allow语句,然后再处理deny语句。

仅拒绝一个IP地址的访问

下面的代码可以实现允许所有用户访问网站,除了一个IP地址:192.168.3.1

rder Allow, Deny
Deny from 192.168.3.1
Allow from All

OR


Order Deny, Allow
Deny from 192.168.3.1

3. 为不同的错误码生成Apache错误文档。

使用一些简单的代码,我们可以修复服务器在用户/客户端请求不可用页面时生成的不同错误码的错误文档,就像大多数人在网页浏览器中看到的“404页面未找到”一样。‘.htaccess’文件指定了在这种错误情况下要采取的操作。

为此,需要将以下代码添加到‘.htaccess’文件中:

ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>

ErrorDocument’是一个关键字,错误码可以是401403404500或任何有效的错误码,最后,‘path-of-document’表示本地机器上的路径(如果您使用自己的本地服务器)或服务器上的路径(如果您使用其他人的服务器来托管您的网站)。

示例:
ErrorDocument 404 /error-docs/error-404.html

以上代码将放置在error-docs文件夹中的‘error-404.html’文档设置为在服务器报告任何对客户端的无效页面请求时显示的404错误文档。

rrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"

上述表示也是正确的,它放置了表示通常HTML文件的字符串。

4. 设置/取消Apache服务器环境变量

.htaccess 文件中,您可以设置或取消服务器允许网站主机修改的全局环境变量。要设置或取消环境变量,您需要将以下行添加到您的 .htaccess 文件中。

设置环境变量
SetEnv OWNER “Gunjit Khera”
取消环境变量
UnsetEnv OWNER

5. 为文件定义不同的MIME类型

MIME(多用途互联网多媒体扩展)是浏览器在运行任何网页时默认识别的类型。您可以在 .htaccess 文件中为您的网站定义MIME类型,以便服务器可以识别并运行您定义的不同类型的文件。

<IfModule mod_mime.c>
	AddType	application/javascript		js
	AddType application/x-font-ttf		ttf ttc
</IfModule>

在这里,mod_mime.c 是用于控制不同MIME类型定义的模块,如果您在系统上安装了此模块,则可以使用此模块为网站中使用的不同扩展名定义不同的MIME类型,以便服务器可以理解它们。

6. 如何限制Apache中上传和下载的大小

.htaccess 文件允许您控制特定客户端从您的网站上上传或下载的数据量。为此,您只需将以下行追加到您的 .htaccess 文件中:

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

上述行设置了最大上传大小、发布的数据的最大大小、最大执行时间,即用户被允许在本地计算机上执行网站的最长时间,以及输入时间的最大时间限制。

Source:
https://www.tecmint.com/apache-htaccess-tricks/