如何使用 .htaccess 文件

如何使用 .htaccess 文件

介绍一个.htaccess 文件用于一个 Apache 网页服务器,以便在不改变服务器配置文件的情况下配置您的网站的详细信息. 这个文件始于一个期限,表示它隐藏在文件夹中。

在本教程中,您将学习如何启用、创建和使用.htaccess 文件,以及一些常见的用途以及对速度和安全的影响。

前提条件如果你想练习使用.htaccess 文件,按照本教程中的示例,你需要:

设置一个Ubuntu 20.04服务器,配备一个非root用户,并启用`sudo'权限和防火墙。 您可以遵循 [Ubuntu 20.04 初始服务器设置指南] (https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-20-04)来做到这一点。在您的 Ubuntu 服务器上安装的 Apache 网络服务器 。 学习如何在 [如何在 Ubuntu 20.04 上安装 Apache Web 服务器] (https://andsky.com/tech/tutorials/how-to-install-the-apache-web-server-on-ubuntu-20-04 ) 上设置它 。 请确定完成 ** 第 5 段 ** , 并为您域设置 [虚拟主机文件] (https://andsky.com/tech/tutorials/how-to-install-the-apache-web-server-on-ubuntu-20-04#step-5-setting-up-virtual-hosts-recommended ) 。 此教程会将 ** 您的域** 作为整个示例, 并在虚拟主机文件中使用 `/etc/apaches2/ sites- 可用/ your_ domain.conf' 。如果您想要使用一个域名( 可选) 来练习, 您可以在 [Namecheap] (https://namecheap.com/ 上购买一个域名来设置一个域名, 在 [Freenom] (http://www.freenom.com/en/index.html) 上免费获得一个域名, 或者使用您选择的域名注册员 。 您还需要为您的服务器设置的下列DNS记录:两个A级记录,一个是您的域名,一个是www.your_domain指向您的服务器的公共IP地址。 遵循此[引入到 DigitalOcean DNS] (https://andsky.com/tech/tutorials/an-introduction-to-digitalocean-dns),详细了解如何添加.如果您也想要保护您的虚拟主机, 您可以使用免费的可信任的证书来保护, 如我们的 [让我们为 Apache 加密指南] (https://andsky.com/tech/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-20-04) 。 然而,如果没有域,则可以使用自签名的证书取而代之. 这提供了同类型的加密,但没有域验证. 遵循我们[自签名的 Apache (https://andsky.com/tech/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-20-04) SSL 指南来设置此功能 。

(英语)一旦完成设置,您可以在下一步练习启用和创建一个.htaccess文件。

启用.htaccess 文件如果您可以访问服务器设置,您可以编辑 Apache 配置以允许.htaccess 文件取代标准网站配置。

開始開啟「apache2/sites-available/your_domain.conf」虛擬主機檔案,使用您喜愛的文本編輯器。

1sudo nano /etc/apache2/sites-available/your_domain.conf

假设您遵循 前提 Apache 安装指南的第 5 步,此文件将包含以下内容:

1[label /etc/apache2/sites-available/your_domain.conf]

2

3

4 ServerAdmin webmaster@localhost

5 ServerName your_domain

6 ServerAlias www.your_domain

7 DocumentRoot /var/www/your_domain

8 ErrorLog ${APACHE_LOG_DIR}/error.log

9 CustomLog ${APACHE_LOG_DIR}/access.log combined

10

在VirtualHost块中添加以下目录内容块:

1[label /etc/apache2/sites-available/your_domain.conf]

2

3

4 ServerAdmin webmaster@localhost

5 ServerName your_domain

6 ServerAlias www.your_domain

7 DocumentRoot /var/www/your_domain

8 ErrorLog ${APACHE_LOG_DIR}/error.log

9 CustomLog ${APACHE_LOG_DIR}/access.log combined

10

11

12 Options Indexes FollowSymLinks MultiViews

13 AllowOverride All

14 Order allow,deny

15 allow from all

16

17

这个目录内容块中最重要的行是AllowOverride All,它允许使用.htaccess文件. 添加这些信息后,保存并关闭文件. 如果您使用nano,您可以按CTRL + X然后按Y和ENTER。

然后重新启动 Apache:

1sudo service apache2 restart

现在您的配置设置已更新以允许使用 .htaccess 文件,在下一步,您将创建一个。

创建.htaccess 文件要在您的终端创建一个 .htaccess 文件,您需要导航到您的 Web 根目录. 您的 Web 根目录是将 .htaccess 文件放置在那里,以便您的配置可以正确地执行您的网站。 .htaccess 文件的正确放置很重要,因为该文件中的配置会影响其目录中的所有内容,以及其后面的目录。 这意味着如果您在同一个 Apache 服务器上服务几个不同的网站,则您的 .htaccess 文件应该放置在特定网站的 Web 根目录中。

如果您遵循前提条件,您的 Web 根目录将位于以下位置: /var/www/your_domain/.htaccess. 为您的网站创建一个 .htaccess 文件,请执行以下命令:

1sudo nano /var/www/your_domain/.htaccess

现在你已经学会了创建一个.htaccess文件的几种方法,接下来我们将审查一些常见的.htaccess页面的用途。

一个.htaccess页面的常见用途您的网站上有五种常见的.htaccess页面用途:

重写 / 重写htaccess文件最有用的方面之一是mod_rewrite。您可以使用.htaccess文件来指定和更改网站上的URL和网页如何向用户显示。

身份验证要设置安全身份验证,您可以创建一个名为.htpasswd的密码文件来验证用户。 进行此更改将创建一个密码门户,要求网站访问者输入密码,如果他们想要访问网页的某些部分。

要创建该文件,请运行htpasswd命令,并包括-c选项和用户名,以创建指定的htpasswd文件。一旦发生这种情况,提示会要求您提供密码。您可以将所需的数行插入htpasswd文件,但请确保每个用户都有自己的相应行。下面的示例说明了如何在文件中创建一个新的条目,在这种情况下对于用户 sammy:

1sudo htpasswd -c /etc/apache2/.htpasswd sammy

您可以通过运行cat /etc/apache2/.htpasswd来检查此文件的内容,它将为您添加的每个记录输出用户名和加密密码。

一旦你添加了你想要的用户(s),接下来打开.htaccess 文件. 如果你遵循前提指南,这将位于以下位置:

1sudo nano /var/www/your_domain/.htaccess

请记住,在本示例中,我们将基于 /var/www/your_domain 限制整个文档根,但可以将其放置到您想要限制访问的任何目录中。

打开此文件后,添加以下内容并保存更改以开始使用密码函数:

1[label /var/www/your_domain/.htaccess]

2AuthType Basic

3AuthName "Restricted Content"

4AuthUserFile /etc/apache2/.htpasswd

5Require valid-user

要了解更多信息,请阅读我们的教程 如何使用 Apache 设置密码身份验证。

用户错误页面.htaccess 文件还允许您为您的网站创建自定义错误页面,其中一些最常见的错误是:

400 错误请求401 权限要求403 禁止页面404 文件未找到500 内部错误要使页面易于使用,并为网站访问者提供比默认服务器错误页面提供的更多信息,您可以使用 .htaccess 文件创建自定义错误页面。

MIME 类型如果您的网站包含某些应用程序文件,而您的服务器尚未设置为交付,您可以在.htaccess 文件中使用以下代码将多用途互联网邮件扩展(MIME)类型添加到您的 Apache 服务器:

1[label /var/www/your_domain/.htaccess]

2AddType audio/mp4a-latm .m4a

请务必用您想要支持的 MIME 类型替换应用程序和文件扩展,为此示例,我们指定了音频 MIME 文件类型。

SSI 的服务器侧包括(SSI)是一个伟大的时间节省在一个网站上。SSI的最常见用途之一是更新大量的页面与一些特定的数据,而无需更新每个页面单独。

要启用 SSI,请将以下代码插入到您的.htaccess 文件中:

1[label /var/www/your_domain/.htaccess]

2AddType text/html .shtml

3AddHandler server-parsed .shtml

這些行告訴「.htaccess」「.shtml」檔案是有效的,而第二行特別讓伺服器對任何SSI命令檢查以「.shtml」結束的所有檔案。

但是,如果您有许多.html页面,您不愿意用.shtml扩展更名,您可以使用另一种策略来对它们进行 SSI 命令的解析,即XBitHack。

您可以使用此XBitHack策略,将下列行添加到.htaccess文件中,以便Apache检查所有具有适当的SSI权限的.html文件:

1[label /var/www/your_domain/.htaccess]

2XBitHack on

要使页面符合XBitHack的条件,请使用chmod命令更改权限:

1chmod +x pagename.html

现在你已经了解了.htaccess 页面的一些常见用途,接下来你将了解有关.htaccess 文件对速度和安全性的影响。

使用.htaccess 文件的速度和安全性虽然一个.htaccess 文件可以用来改进一个网站,但有两件事要注意:速度和安全性。

至于速度,.htaccess 文件可能会减慢您的服务器,但对于大多数服务器来说,这可能是一个不可察觉的变化。这可能是由于页面的位置,因为.htaccess 文件会影响其目录中的页面和其后所有的目录,这意味着每次页面加载时,服务器会扫描其目录,以及之前的任何目录,直到它达到最高的目录或.htaccess 文件。

为了安全,.htaccess 文件比标准的 Apache 配置更容易访问,更改是即时进行的(无需重新启动服务器)。这允许用户对.htaccess 文件进行更改,让他们对服务器本身有很大的控制权。任何在.htaccess 文件中放置的指令,都具有与在 Apache 配置本身相同的效果。

结论.htaccess 文件为您提供了大量的灵活性来构建您的网站. 要了解更多关于安全您的网站,请阅读我们的教程在 设置与 Apache 密码身份验证 。

相关推荐

击剑世锦赛中国女花获第7 韩国男佩团体首夺冠
365bet游戏网站

击剑世锦赛中国女花获第7 韩国男佩团体首夺冠

📅 07-12 👁️ 7338
骨科主任提醒:老年人钙片,切记“5大原则”,安全补钙
适合送给爷爷的老人机排行榜
365bet投注网站

适合送给爷爷的老人机排行榜

📅 08-11 👁️ 3772
楚河汉界的意思
365bet投注网站

楚河汉界的意思

📅 08-17 👁️ 1017
CSGO国服激活不了?别急,这才刚开始!
bat365在线登录入口

CSGO国服激活不了?别急,这才刚开始!

📅 08-21 👁️ 8503
冷字组词
365bet投注网站

冷字组词

📅 08-06 👁️ 3555