.htaccess的应用

今天下班后,同事问到这个东西的用法。我以前也没接触过,特地搜索了一下,现在保存方便以后使用。

1.首先判断服务器类型,服务器是否支持。

2.写法是否有错误。

3.需要的功能是否在.htaccess是否支持。

.htaccess是什么?

.htaccess叫分布式配置文件,它提供了针对目录改变配置的方法——在一个特定的文档目录中放置一个包含一个或多个指令的文件,
以作用于此目录及其所有子目录。并且子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。一般来说,如果你的虚拟主机使用的是Unix或Linux系统,或者任何版本的Apache网络服务器,从理论上讲都是支持.htaccess的。

如何建立.htaccess?

在我们使用的windows(瘟到死)主机上创建.htaccess文件是很困难的。写文件倒很容易,你只需要在文字编缉器(例如:记事本)里写下适当的代码。困难的是文件的保存,因为.htaccess是一个古怪的文件名,其实它并没有文件名,只有一个由8个字母(htaccess)组成的扩展名,而在windows系统中这是无法接受的文件名。因此,这里有3个方法可以实现。

方法一:保存文件的时候将文档保存成名为“.htaccess”
(包括引号)或者htaccess.txt亦或者1.htaccess。再将其上传到服务器上,之后直接使用FTP软件来重命名。

方法二:保存文件的时候选择文件—>另存为,保存类型选所有文件,然后文件名输入.htaccess ,这样就OK啦o(∩_∩)o…。

方法三:直接在你的Unix或Linux虚拟主机上建立。

 .htaccess是什么?.htaccess是在Apache HTTP
Server这款服务器架设软件下的一个对于系统目录进行各种权限规则设置的一个文件,存在于Linux操作系统中。比较常见的是定义默认首页名称,404页面,301转向,等等,还有更多的功能比如伪静态,限制图片外链,限制下载,密码保护,去除页面广告等等,还有非常多的功能就不一一列举。
  其实这些功能大多可以在cPanel控制面板来进行设置的(相当于是.htaccess的图形化界面)。但对于高手来讲,cPanel对于htaccess提供的功能还是太少了点,手工编辑才是王道。相对于国内的虚拟主机,绝大多数是没有这个功能的

目录规则
一般我们将.htaccess文件放置在网站的根目录,控制所在目录及所有子目录,而如果放置在子目录中,会受上级目录中.htaccess文件影响,是不起任何作用的。

举几个例子,以下部分引用维基百科。

自定义错误页面(直接拷贝即可)

ErrorDocument 404 /error-pages/not-found.html
ErrorDocument 503
/error-pages/service-unavailable.html

————————————————————————-
IP禁止

Order allow,deny
Deny from 123.45.67.8
Deny from 123.123.7
Allow
from all

上面能禁止IP地址在123.45.67.8以及IP地址开头为123.123.7的任何人。例如123.123.74.42
就不能得到访问。
————————————————————————-
变更默认首页

DirectoryIndex homepage.html

————————————————————————-
去除页面广告(不一定适用所有免费空间)

LayoutIgnoreURI *.php
LayoutIgnoreURI *.cgi
LayoutIgnoreURI
*.htm
LayoutIgnoreURI *.html
LayoutIgnoreURI *.txt

————————————————————————-
页面跳转

Redirect page1.html page2.html

如果某人访问
http://www.example.com/page1.html,他将被跳转到(带有HTTP状态代码302)的http://www.example.com/page2.html
————————————————————————-
服务器内置SSI

AddType text/html .shtml
AddHandler server-parsed .shtml
Options
Indexes FollowSymLinks Includes

————————————————————————-
防止图片热链
后面的 .htaccess规则使用了mod
rewrite。
特别域名

RewriteEngine on
RewriteCond %{HTTP_REFERER}
^http://([^/]+\.)?baddomain1\.com [NC,OR]
RewriteCond %{HTTP_REFERER}
^http://([^/]+\.)?baddomain2\.com [NC,OR]
RewriteCond %{HTTP_REFERER}
^http://([^/]+\.)?baddomain3\.com [NC]
RewriteRule \.(gif|jpg)$
http://www.example.com/hotlink.gif [R,L]

非特别域名

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond
%{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC]
RewriteRule
\.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L]

除非 example.com有这个图片,浏览器才能看到hotlink.gif.
注意:Hotlink热链保护使用 .htaccess
依赖客户端在http GET请求中发送正确的”提交”值。像尝试使用Windows Media Player发送空白的提交到.htaccess
来保护电影档案是无效的。

禁止.htaccess文件被查看
在.htaccess文件中加入如下代码就可以禁止别人访问你的.htaccess文件:

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

这个网上的大部分版本都有错误,大部分版本丢掉了<Files .htaccess>
,结果导致所有文件都被禁止访问。如果用了错误的规则,所有内容都将无法访问。

同样道理,如果要禁止其他文件的访问,用其他文件名替换就可以了。

根据同事发给我留言,她要实现的是伪静态部分。

要是windows+iis 的话,恭喜您 Apache
支持这个.iis没有apache模块的话,您就自求多福吧

.htaccess的应用

时间: 2024-09-30 15:37:26

.htaccess的应用的相关文章

.htaccess设置自定义出错页面

404错误可以这么写 ErrorDocument code error.php 如果是404错误,跳到文件error.php 其他常用错误页面写法(其中404错误有2种写法,上面一种,下面是通用错误定义) ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php ErrorDocument 400 /error/400.php ErrorDocument 401 /error/401.php ErrorDocument 4

.htaccess保护目录与文件

一般来说很多虚拟主机预设是没有开启保护网站主机目录下的文件,其实很危险的,假若你的目录下忘记放置index文件,那很可能您目录就被看光,一个不小心很可能重要资料就被拿走,这是蛮严重的一件事情.如果是Linux主机,我们可以透过简易的.htaccess语法来保护网站主机目录下的文件,让别人无法轻易看见. 平常我们使用的最简单保护目录的方法,莫过于使用「index.php」.「index.html」等等之类的网站index文件,因为主机内预设的设定在目录中预设就是要抓index文件,而index文件

php开启.htaccess文件的功能

如果你使用了.htaccess文件,文件里使用了Rewrite,在运行网站的时候出现如下错误,那么恭喜你,这篇文章你找对了 解决方法: 打开apache的配置文件,将LoadModule rewrite_module modules/mod_rewrite.so前边的#去掉,也就是开启rewrite功能 还要修改里边的AllowOverride,改为AllowOverride all修改全部的. 

【分享】利用Apache的Htaccess Files命令限制访问文件类型,Files正则

如果你在你的模板文件夹中有很多PSD HTML模板,那么用接下来这个htaccess文件可以保护限制访问: 文件D:\WebSite\ZBPHP.COM\www\Tpl\.htaccess 全部源码如下: <Files ~ "\.(html?|tpl|psd|zip|rar)$"> Order Allow,Deny Deny from all </Files> [分享]利用Apache的Htaccess Files命令限制访问文件类型,Files正则,布布扣,b

apache 伪静态 .htaccess

虽然网上有很多教程,但是我在这里进行简单对我用到的总结一下. 加载Rewrite模块: 在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号"#",或添加这句. .htacess文件,开头内容如下: RewriteEngine on RewriteEngine on是代表开启rewrite.在正是写规则前,先为大家讲一下重写中设计到的特殊字符的含义.和普通正则是通用的! *

ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php

去掉 URL 中的 index.php ThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好.但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache .htaccess 文件,更是可以定制出人性化的更利于 SEO 的 URL 地址来. .htaccess文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置.我们可以利用 .htaccess 文件的 Rewrite 规则来隐藏掉 ThinkPHP URL 中的 in

httpd.conf .htaccess

PHP Advanced and Object-Oriented Programming Larry Ullman The standard solution in these situations is to use the Apache Web server’s mod_rewrite module to allow for “prettier” URLs. mod_rewrite is a tool that lets you instruct the server that when t

利用.htaccess绑定子域名到子目录(亲测万网可用)

http://www.xmgho.com/archives/783.html 利用.htaccess绑定域名到子目录,前提你的空间服务器必须支持apache的rewrite功能,只有这样才能使用.htaccess.如果你的空间是Linux服务器 一般默认都开启了的. 绑定域名 登陆域名管理台(如DNSPod) 把需要绑定的域名 解析到你的空间:登陆虚拟主机/空间管理台(如万网) 绑定域名到空间; 首先在本地建个txt文件,复制下面的代码修改替换你要绑的域名和目录,并传到网站主目录下再改成为.ht

1.3 .htaccess语法

.htaccess是Apache服务器的一个非常强大的分布式配置文件. 1. 常见格式 #开启URL重写RewriteEngine On#URL重写作用域RewriteBase /path/to/url#重写条件RewriteCond#重写规则RewriteRule 例子CodeIgniter移除URL中的index.php RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !

关于Nginx支持.htaccess的分析

http://www.40099.cc/funny/184.html 之前曾在Typecho开发群中与王轶讨论了关于Nginx支持.htaccess文件的问题.王轶认为,Nginx能够支持.htaccess规则,且兼容Apache规则.我认为,Nginx支持使用.htaccess文件来存储Nginx的伪静态规则,不兼容.htaccess规则. 我之所以这么说,是有原因的,我查阅了Nginx的官方文档文档1/文档2,文档1是Nginx的Rewrite模块的doc,详细的解释了nginx的rewri