.htaccess常用规则教程

0
5789

.htaccess是Apache服务器的一个非常强大的配置文件,必盛互联的linux最新服务器系统CloundLinux支持用户自定义.htaccess,用户可以根据自身需求进行定义。必盛互联可以允许用户通过.htaccess文件可以设置ip的封禁、错误代码返回页面、重定向、设置并替换index文件等功能。

1.拒绝IP的访问

如果不想某个组织或者个人访问到你的网站,那可以通过.htaccess中加入该组织或者个人的IP可以让他们访问不到你的网站。 例如:
deny from 123.123.123.123   //拒绝该ip访问
deny from 123.123.123      //拒绝ip段的访问:123.123.123.0–123.123.123.255
deny from all                     //拒绝所有访问
allow from 123.123.123.123  //允许该ip访问

2. 保护.htaccess文件

对很多用户来说从安全考虑,需要把.htaccess保护起来,不让别人看到其中的内容。
.htaccess本身能做到这个效果,加入如下的指令:

<Files .htaccess>
order allow,deny
deny from all
</Files>

3. 常用的用户请求错误返回代码

在.htaccess中加入以下代码:
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
500 Internal Server Error

4. 用户可以利用.htaccess指定自定义的错误提醒页面
用户可设立一个目录,例如/zhuji91errors放置自定义页面。之后在.htaccess中,加入以下的代码:
ErrorDocument 404 /zhuji91errors/notfound.html
ErrorDocument 500 /zhuji91errors/internalerror.html
以上第一句代码的意思是针对404错误,当出现404错误时,会直接跳转到/zhuji91errors/internalerror.html 这个路径指向的文件。
代码格式:ErrorDocument 错误代码 /目录名/文件名.扩展名

也可以在.htaccess中直接使用HTML语言,例子如下:ErrorDocument 404 “<body bgcolor=#ffffff><h1>error 404 not found</h1></body>”

5.重定向

用户可以使用.htaccess重定向整个网站的目录。例如用户网站上有一个名为zhuji91_old的目录,而且用户在一个新网站 https://www.bisend.cn/zhuji91_new/上建立了与上相同的网站,用户可以将旧目录下所有的文件做一次重定向而不用每一个都进行重定向:

Redirect /zhuji91_old https://www.bisend.cn/zhuji91_new

这样,任何指向到站点中/zhuji91_old目录的请求都将被重新指向新的网站。例如有访问者输入:
https://www.bisend.cn/zhuji91_old/old/old.php
请求将被重定向到:
https://www.bisend.cn/zhuji91_new/new/new.php

6. Joomla重定向(URL重写)

要对Joomla启用URL重写,需要复制并粘贴以下代码到.htaccess文件中
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks

Options +SymLinksIfOwnerMatch

7. 停示显示目录列表

可能会有些用户的网站根目录下没有index文件,这意味着当有人在浏览器地址栏键入了该目录的路径,该目录下所有的文件都会显示出来,这样用户的网站文件就会暴露。

这个时候用户又不想创建index文件的话,用户可以在.htaccess文档中加入以下代码,用以阻止目录列表的显示:

Options –Indexes

8. 替换index文件

或许有些用户不想一直使用index.htm或index.html作为目录的索引文件。用户可以使用.htaccess能够设置其它文件来作为你的索引文档。

这些索引文件可以排成一个列表,服务器会从左至右进行寻找,检查哪个文档在真实的目录中存在。如果一个也找不到,除非用户已经关闭了显示目录文件列表否则它将会把目录列表显示出来。代码如下:

DirectoryIndex index.php index.aspx messagebrd.pl index.html

9. 移除URL中的www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^jqueryba.com$ [NC]
RewriteRule ^(.*)$ http://jqueryba.com/$1 [L,R=301]

10. 自定义错误页:
ErrorDocument 400 /errors/badrequest.html
ErrorDocument 401 /errors/authreqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html

11. URL重写
RewriteEngine On
RewriteRule ^p/([0-9]+).html$ index.php?post_id=$1
RewriteRule ^u-(username|uid)-(.+).html$ space.php?$1=$2
其中,RewriteEngine 表示开启URL重写,RewriteRule是重写规则。

12. 防止盗链 
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?aqee.net/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

13. 压缩文件(压缩 text, html, javascript, css, xml等)
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

14. 缓存文件:
<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”>
Header set Cache-Control “max-age=2592000″
</FilesMatch>

15. 访问网站密码保护
可以通过htaccess的设置,实现访问相应网站需要输入用户名和密码,例如:
http://username:password@www.website.com/directory/