为什么使用 .htaccess 文件
.htaccess 文件是一种无需更改服务器配置文件即可配置网站详细信息的方法。 以文件名开头的句点将使文件隐藏在文件夹中。
您可以在文本编辑器中创建 .htaccess 文件(确保仅将其命名为 .htaccess 而没有任何其他扩展名或名称),然后通过 ftp 客户端将其上传到您的站点。
此外,.htaccess 文件的位置也很重要。 该文件中的配置将影响其目录及其下的目录中的所有内容。
需要注意的事项
尽管 .htaccess 页面非常有用并且可以用来显着改进网站,但它可以影响两件事。
One:速度—.htaccess 页面 可能 会稍微降低您的服务器速度; 对于大多数服务器来说,这可能是一个难以察觉的变化。 这是因为页面的位置:.htaccess 文件会影响其目录中的页面及其下的所有目录。 每次加载页面时,服务器都会扫描它的目录,以及它上面的任何目录,直到它到达最高目录或 .htaccess 文件。 只要 AllowOverride 允许使用 .htaccess 文件,该过程就会发生,无论 .htaccess 文件是否实际存在。
二:安全性——.htaccess 文件比标准 apache 配置更易于访问,并且更改会立即生效(无需重新启动服务器)。 授予用户更改 .htaccess 文件的权限可以让他们对服务器本身进行大量控制。 放置在 .htaccess 文件中的任何指令都具有与 apache 配置本身相同的效果。
一般来说,如果用户可以轻松访问 apache 配置文件,则 Apache 不鼓励使用 .htaccess。
有了这个,让我们继续处理 .htaccess 信息。
如何激活 .htaccess 文件
如果您有权访问服务器设置,则可以编辑配置以允许 .htaccess 文件覆盖标准网站配置。 打开 apache2 默认主机配置文件。 注意:此步骤您需要 sudo 权限。
sudo nano /etc/apache2/sites-available/default
进入该文件后,找到以下部分,并将表示 AllowOverride 的行从 None 更改为 All。 该部分现在应如下所示:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
保存并退出该文件后,重新启动 apache。
sudo service apache2 restart
创建 .htaccess 文件:
您可以在文本编辑器中创建 .htaccess 文件(确保仅将其命名为 .htaccess 而没有任何其他扩展名或名称),然后通过 ftp 客户端将其上传到您的站点。
或者,您可以使用此命令,将 example.com 替换为您的站点名称,在终端中创建您的 .htaccess 文件。
sudo nano /var/www/example.com/.htaccess
.htaccess 页面的五种常见用途
1. Mod_Rewrite: .htaccess 文件最有用的方面之一是 mod_rewrite。 您可以使用 .htaccess 文件中的空间来指定和更改站点上的 URL 和网页向用户显示的方式。 您可以在 此处 找到有关如何执行此操作的完整教程。
2. 验证 :虽然使用 .htaccess 文件不需要访问 apache2.conf 文件所需的那么多权限,但我们仍然可以对站点进行有效的更改。 一旦这样的更改是需要密码才能访问网页的某些部分。
.htaccess 密码保存在名为 .htpasswd 的文件中。 继续创建并保存该文件,出于安全原因,请确保将其存储在 Web 目录以外的其他位置。
您应该使用 .htpasswd 文件中的空间来写入您希望访问站点受保护部分的所有用户的名称和密码。
您可以使用 这个有用的站点 来生成用户名和加密密码对。 如果您的授权用户的用户名是 jsmith,密码是“awesome”,则该对将如下所示:jsmith:VtweQU73iyETM。 您可以根据需要将任意多的行粘贴到 .htpasswd 文件中,但要确保每个用户都有自己的行。
完成 .htpasswd 文件后,您可以在 .htaccess 文件中键入此代码以开始使用密码功能:
AuthUserFile /usr/local/username/safedirectory/.htpasswd AuthGroupFile /dev/null AuthName "Please Enter Password" AuthType Basic Require valid-user
- AuthUserFile: 此行指定 .htpasswd 文件的服务器路径。
- AuthGroupFile: 此行可用于传达 .htgroup 的位置。 由于我们还没有创建这样的文件,我们可以将 /dev/null 留在原处。
- AuthName: 这是将在密码提示中显示的文本。 你可以在这里放任何东西。
- AuthType: 这是指将用于检查密码的身份验证类型。 密码通过 HTTP 进行检查,并且不应更改关键字 Basic。
- Require valid-user: 这一行代表两种可能性之一。 “要求有效用户”告诉.htaccess 文件有几个人应该能够登录到密码保护区域。 另一种选择是使用短语“要求用户用户名”来指示特定的允许人员。
3. 自定义错误页面 : .htaccess 文件还允许您为您的站点创建自定义错误页面。 一些最常见的错误是:
- 400 错误请求
- 401 需要授权
- 403禁止页面
- 404 文件未找到
- 500 内部错误
为了使页面看起来更友好并向站点访问者提供比默认服务器错误页面提供的更多信息,您可以使用 .htaccess 文件来创建自定义错误页面。
我将在本教程中创建一个 404 页面。 但是,您可以将该错误替换为您喜欢的任何内容:>
创建并上传所需的错误页面后,您可以继续并在 .htaccess 文件中指定其位置。
ErrorDocument 404 /new404.html
请记住,Apache 会查找位于站点根目录中的 404 页面。 如果您将新的错误页面放在更深的子目录中,则需要将其包含在该行中,使其看起来像这样:
ErrorDocument 404 /error_pages/new404.html
4. 哑剧类型: 如果您的站点包含一些您的服务器未设置为交付的应用程序文件,您可以使用以下代码在 .htaccess 文件中将 MIME 类型添加到您的 Apache 服务器。
AddType audio/mp4a-latm .m4a
请务必将应用程序和文件扩展名替换为您要支持的 Mime 类型。
5. SSI :服务器端包含在网站上非常节省时间。 SSI 最常见的用途之一是使用某些特定数据更新大量页面,而不必单独更新每个页面(例如,如果您想更改页面底部的报价)。
要启用 SSI,请在 .htaccess 文件中键入以下代码。
AddType text/html .shtml AddHandler server-parsed .shtml
这三行的作用是告诉 .htaccess .shtml 文件是有效的,第二行专门使服务器解析所有以 .shtml 结尾的文件以获取任何 SSI 命令。
但是,如果您有许多 .html 页面不想用 .shtml 扩展名重命名,则可以使用另一种策略来解析它们以获取 SSI 命令,即 XBitHack。
将此行添加到 .htaccess 文件使 Apache 检查所有具有服务器端包含的适当权限的 html 文件。
XBitHack on
要使页面符合 XBitHack 的条件,请使用以下命令:
chmod +x pagename.html
看更多
.htaccess 页面为您提供了很大的灵活性来构建您的站点,这只是一个简短的概述。 如果您对 .htaccess 文件的具体功能还有任何疑问,请随时在我们的问答论坛我们很乐意回答他们。