资讯专栏INFORMATION COLUMN

【Apache运维基础(5)】Apache的Rewrite攻略(2).htaccess文件

shengguo / 657人阅读

摘要:作为用户,所能使用的命令受到限制。启用,需要修改,启用,并可以用限制特定命令的使用。如果需要使用以外的其他文件名,可以用指令来改变。例如,需要使用,则可以在服务器配置文件中按以下方法配置。

简述

.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,立即生效;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/36015.html

相关文章

  • Apache运维基础(5)】ApacheRewrite攻略2).htaccess文件

    摘要:作为用户,所能使用的命令受到限制。启用,需要修改,启用,并可以用限制特定命令的使用。如果需要使用以外的其他文件名,可以用指令来改变。例如,需要使用,则可以在服务器配置文件中按以下方法配置。 简述 .htaccess文件(或者分布式配置文件)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令...

    yanwei 评论0 收藏0
  • Apache运维基础(4)】ApacheRewrite攻略(1)

    摘要:简述主要的功能就是实现的跳转,它的正则表达式是基于语言。可基于服务器级的和目录级的两种方式。否则里没有它里面的规则也不会生效。基于目录级的要注意一点那就是必须打开此目录的属性且在里要声明。 简述 Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式。如果要想用到rewrite模...

    awokezhou 评论0 收藏0
  • Apache运维基础(4)】ApacheRewrite攻略(1)

    摘要:简述主要的功能就是实现的跳转,它的正则表达式是基于语言。可基于服务器级的和目录级的两种方式。否则里没有它里面的规则也不会生效。基于目录级的要注意一点那就是必须打开此目录的属性且在里要声明。 简述 Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式。如果要想用到rewrite模...

    shixinzhang 评论0 收藏0
  • Apache下.htaccess文件配置及功能介绍

    摘要:如果你的服务器提供某些资源的下载,那么你就必须多加小心诸如迅雷等下载软件,因为它们可能把你网站资源吸干,并且影响你的正常访客访问。 目录一、准备开始:mod_rewrite 二、利用.htaccess实现URL重写(rewrite)与URL重定向(redirect) 将.htm页面映射到.php 临时重定向(R=302)与永久重定向(R=301) 为什么要用重定向?——重定向和URL...

    lijy91 评论0 收藏0
  • Apache下.htaccess文件配置及功能介绍

    摘要:如果你的服务器提供某些资源的下载,那么你就必须多加小心诸如迅雷等下载软件,因为它们可能把你网站资源吸干,并且影响你的正常访客访问。 目录一、准备开始:mod_rewrite 二、利用.htaccess实现URL重写(rewrite)与URL重定向(redirect) 将.htm页面映射到.php 临时重定向(R=302)与永久重定向(R=301) 为什么要用重定向?——重定向和URL...

    niuxiaowei111 评论0 收藏0

发表评论

0条评论

shengguo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<