内容简介:.htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。启用.htaccess,需要修改httpd.conf,启用AllowOverr
简述
.htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
Unix、 Linux 系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。
笼统地说,.htaccess可以帮我们实现包括: 文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
写法规则
DirectoryIndex zxg.html #改变默认文件 RewriteEngine On #打开或关闭运行时刻的重写引擎,设置位置:服务器配置, 虚拟主机, 目录.htaccess '-d' (是一个目录[directory]) 将TestString视为一个路径名并测试它是否存在而且是一个目录 '-f' (是一个常规的文件[file]) 将TestString视为一个路径名并测试它是否存在而且是一个常规的文件 '-l' (是一个符号连接[link]) 将TestString视为一个路径名并测试它是否存在而且是一个符号连接 redirect|R [=HttpCode] (强制重定向 redirect) (使新的URL成为一个URI) 为前缀的Substitution可以强制性执行一个外部重定向。 如果code没有指定,则产生一个HTTP响应代码302(临时性移动)。 注意: 在使用这个标记时,必须确保该替换字段是一个有效的URL last|L (最后一个Url规则的重写last) 立即停止重写操作,并不再应用其他重写规则。这个标记可以阻止当前已被重写的URL为其后继的规则所重写 'forbidden|F' (强制URL为被禁止的 forbidden) 强制当前URL为被禁止的,即,立即反馈一个HTTP响应代码403(被禁止的) 'nocase|NC' (忽略大小写 no case)它使Pattern忽略大小写,即, 在Pattern与当前URL匹配时,'A-Z' 和'a-z'没有区别。
综合示例
#注意,#只能放在句首,下面句尾的#实际应用要删除掉
#改变默认文件
DirectoryIndex zxg.html
#伪静态
RewriteEngine On #打开或关闭运行时刻的重写引擎,设置位置:服务器配置, 虚拟主机, 目录.htaccess
ReWriteRule ^(\d+)_(\d+)\.html news.php?cid=$1&aid=$2 [NC,R=301,L] #301定向,不区分大小写
#访问的不是一个文件或目录的时候就跳转到一个404.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
ReWriteRule .* 404.html [L]
#去掉index.php
RewriteCond $1 !^(index\.php|images|robots\.txt) #任何非 index.php、images 和 robots.txt 的 HTTP 请求都被指向 index.php。
RewriteRule ^(.*)$ /index.php/$1 [L]
#防盗链
RewriteCond %{HTTP_REFERER} !^$ #如果来源地址不为空
RewriteCond %{HTTP_REFERER} !^http://web1.com #如果不是以http://web1.com开头
RewriteCond %{REQUEST_FILENAME} .*\.(jpg|jpeg|gif|png) [NC] #如果访问的是图片
ReWriteRule .* no.png [L] #就定向到no.png上面去
1.注意它的顺序是从上到下,符合某一条件就不走下面条件;所以在写伪静态的时候要考虑这个先后顺序;
2.#注释号只能放在句首,不能放在句尾;
3.不需要重启Apache,立即生效;
以上所述就是小编给大家介绍的《【Apache运维基础(5)】Apache的Rewrite攻略(2).htaccess文件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP and MySQL Web Development
Luke Welling、Laura Thomson / Sams / July 25, 2007 / $49.99
Book Description PHP and MySQL Web Development teaches you to develop dynamic, secure, commerical Web sites. Using the same accessible, popular teaching style of the three previous editions, this b......一起来看看 《PHP and MySQL Web Development》 这本书的介绍吧!