为什么使用.htaccess文件
.htaccess文件是配置您的网站的详细信息的方法,而不需要更改服务器配置文件。 启动文件名的时间段将使文件隐藏在文件夹中。
您可以在文本编辑器中创建.htaccess文件(确保仅将其命名为.htaccess,而不带任何其他扩展名或名称),然后通过ftp客户端将其上传到您的网站。
此外,.htaccess文件的位置很重要。 该文件中的配置将影响其目录及其下的目录中的所有内容。
事情要意识到
虽然.htaccess页面可以非常有用,可以用来对一个网站进行明显的改进,有2件事情,它可以影响。
一:速度 -The的.htaccess页面可能你的服务器有所减缓; 对于大多数服务器,这可能是一个不可察觉的变化。 这是因为页面的位置:.htaccess文件影响其目录中的页面和其下的所有目录。 每次加载页面时,服务器都会扫描其目录以及其上的任何内容,直到它到达最高目录或.htaccess文件。 只要AllowOverride允许使用.htaccess文件,无论文件.htaccess文件是否实际存在,此过程都会发生。
二:安全 -the .htaccess文件是远远超过标准的Apache配置更容易获得且其变动现场即时(无需重新启动服务器)。 授予用户对.htaccess文件进行更改的权限,可以让他们对服务器本身进行很多控制。 放置在.htaccess文件中的任何指令都与在apache配置本身中具有相同的效果。
一般来说,Apache不鼓励使用.htaccess,如果用户可以轻松地到达apache配置文件本身。
有了这一点,让我们继续.htaccess信息。
如何激活.htaccess文件
如果您有权访问服务器设置,您可以编辑配置以允许.htaccess文件覆盖标准网站配置。 打开apache2默认主机配置文件。 注意:您将需要此步骤的sudo权限。
sudo nano /etc/apache2/sites-available/default
进入该文件后,找到以下部分,将AllowOverride的行从None更改为全部。 该部分现在应该如下所示:
<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文件中的空格来指定和更改您的网站上的网址和网页如何向用户显示。 你可以找到如何做到这一点的整个教程这里 。
2.验证 :虽然使用.htaccess文件并不需要尽可能多的权限访问apache2.conf文件需要,我们仍然可以做出有效的改变到一个站点。 一旦这种更改需要密码访问网页的某些部分。
.htaccess密码保存在名为.htpasswd的文件中。 继续创建和保存该文件,确保将其存储在网络目录以外的地方,出于安全原因。
您应该使用.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. Mime类型:在您的网站的特点,你的服务器没有设置为带来一些应用程序文件的情况下,你可以在.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文件的具体功能有任何疑问,请随时在我们发表您的问题 ,我们很乐意回答他们。