`
tiandirensoon
  • 浏览: 597354 次
文章分类
社区版块
存档分类
最新评论

.htaccess的重写规则

 
阅读更多

.htaccess基本语法和应用

.htaccess是Apache服务器的一个非常强大的分布式配置文件。
正确的理解和使用.htaccess文件,可以帮助我们优化自己的服务器或者虚拟主机。

如何启用htaccess

以windows为例,进入apache/conf目录,找到httpd.conf文件,去掉
LoadModule rewrite_module modules/mod_rewrite.so
前面的#,然后设置目录属性AllowOverride All,重启apache即可

常见格式

下面是一个典型的htaccess文件

# 开启URL重写
RewriteEngine on
# URL重写的作用域
RewriteBase /path/to/url
# 满足怎样的条件
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
# 应用怎样的规则
RewriteRule .? http://www.example.com%{REQUEST_URI} [R=301,L]

来看看RewriteCond,首先有一个%,因为{HTTP_HOST}是一个apache变量,需要用%来指示。从!开始就是匹配的条件,支持 正则。!表示不等于,这句话的意思就是:如果HTTP_HOST不是www.example.com。后面的[NC](no case)表示忽略大小写,常见的还有

  • [L](last):终止一系列的RewriteCond和RewriteRule
  • [R](redirect):触发一个显示的跳转,也可以指定跳转类型,如[R=301]
  • [F](forbidden):禁止查看特定文件,apache会触发403错误

典型应用

图片防盗链

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]

由于是基于HTTP_REFERER的验证,所以只能防止一般的图片盗链,因为HTTP_REFERER是比较容易伪造的

自定义404错误页面
如果用户输入了一个不存在的url,那么就显示自定义的错误页面

ErrorDocument 404 /404.html
# 其他同理
ErrorDocument 500 /500.html

处理移动过的文件

Redirect 301 /old.html http://yoursite.com/new.html

# 也可以是下面这样
RewriteRule /old.html http://yoursite.com/new.html [R=301,L]

# 如果想隐式跳转(URL地址不变,但实际上内容是其他URL的),就使用下面的
RewriteRule /old.html http://yoursite.com/new.html [L]

对于RewriteRule还有好多文章可以做,比如


# 把html后缀的url链接到php文件
# $1指代的是前面第1个用括号括起来的内容
RewriteRule ^/?([a-z/]+)\.html$ $1.php [L]
# 或者把旧文件夹的内容链接到新文件夹
RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]

# 隐藏文件名
RewriteRule ^/?([a-z]+)$ $1.php [L]

禁止显示目录列表

如果目录里没有index文件,又没有对该目录做过特别的处理,尤其是windows主机,那么该目录里的内容就会显示出来,这时可以在根目录创建 一个.htaccess文件,然后写上

Options -Indexes
# 就这么一句就搞定了

阻止/允许特定IP/IP段

# 禁止所有IP,除了指定的
order deny,allow
deny from all
# 如果想允许IP段,如123.123.123.0 ~ 123.123.123.255,则
# allow from 123.123.123.
allow from 123.123.123.123

ErrorDocument 403 /page.html

<Files page.html>
allow from all
</Files>

#如果想禁止特定IP
deny from 123.123.123.123

添加MIME类型

AddType video/x-flv .flv
# 如果设置类型为 application/octet-stream 将提示下载
AddType application/octet-stream .pdf

分享到:
评论

相关推荐

    htaccess重写规则的功能作用.docx

    .htaccess文件功能整理的笔记,简明地介绍了RewriteEngine、RewriteBase、RewriteRule、RewriteCond等的作用

    xlsredirect:根据任何xlsxlsx文件生成.htaccess重写规则

    这是一个简单的节点命令行工具,用于从任何xls / xlsx文件生成.htaccess重写重定向。 还包括一个基本的重定向检查器,它可以处理用于生成重定向的同一文件。 发电机使用 克隆存储库并从终端安装依赖项: git clone...

    htaccess URL重写

    htaccess URL重写详细规则htaccess URL重写详细规则

    .htaccess rewrite 规则详细说明

    国内的虚拟机一般不提供.htaccess功能(据我所知,discuz的主机好像提供此功能),而在国外主机中,.htaccess功能...正则表达式(Rewrite规则建立在正则的基础之上,推荐:正则表达式30分钟入门教程) rewrite的语法

    CloudFlare:ZF2 的 Cloudflare 模块

    ZF2 的 CloudFlare 模块 ... 安装 ... return array( 'modules' =&gt; array ( 'Stuki\\CloudFlare' , ... 此存储库中包含 .htaccess 重写规则,仅允许 CloudFlare 应用程序连接到您的应用程序并将所有其他流量源重定向到

    Apache利用.htaccess文件重写URL隐藏入口,模块名,实现伪静态-附件资源

    Apache利用.htaccess文件重写URL隐藏入口,模块名,实现伪静态-附件资源

    PHP中的.htaccess伪静态文件

    工具/原料 url重写 iis7 方法/步骤 安装iis,这个就不多说了。使用系统自带的启动或关闭windows功能来安装。 http://www.microsoft.com/web/downloads/,下载并安装“web 平台安装程序”,目前最新版本为5.0,双击...

    prestashop1.6从apache转换成nginx的重写规则

    prestashop_1.6.0.9 从apache转换nginx...text.conf是apache的.htaccess转换成nginx的重写规则 将text.conf这个文件放在nginx的rewrite里 然后在nginx的配置文件中include进来就可以了. 有什么问题欢迎指出,谢谢!~

    网站重写url伪静态工具

    ISAPI_Rewrite,ISAPI_Rewrite用来实现伪静态,将动态网页通过重写URL的方法实现去掉动态网页的参数!它的行为是像Apache的mod_Rewrite ,但专为微软的Internet信息服务( IIS )。 IIS配置相当简单,配置好之后就有...

    多种服务器url重写规则

    4、把url_rewrite文件夹下的.htaccess文件放到根目录 --------------------IIS--------------------- 如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件 httpd.ini在url_rewrite文件夹下 高版本的...

    Apache rewrite重写规则的常见应用

    一、为什么需要用重写规则  —- 网站的生命在于不断地进行更新和维护,根据业务发展的需求转移服务器进行维护、重新组织目录结构、变换URL甚至改变到新的域名等情况是经常发生的。为了让客户不会因此受到任何影响...

    zencart156-modul-ultimate-seo-urls-master.

    仅当您熟悉“重写规则”并且知道自己在做什么时,才执行此操作! 3. 现在,在Zen-Cart管理中的“配置”&gt;“最终SEO URL”下可以使用设置选项。此处将Enable Ultimate SEO设置为true,通常可以打开模块。此处介绍了...

    PHP+MySql的股票配资系统设计.zip

    .htaccess APACHE 重写规则 error.html 404及系统错误页面 favicon.ico 网站ICO图标 index.php 网站入口 web.config IIS 配置文件 网站后台 http://域名/ynw/admin/ 为了安全着想非登录状态访问http://域名/admin/...

    apache的AllowOverride以及Options使用详解

    通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的...

    IIS服务器SSI(rewrite重写)插件的帮助资料

    运行IIS服务器SSI(rewrite重写)插件,可在windows的IIS服务器上通过“httpd.conf”文件或将指令“Options +Includes”以ASCII编码写入“.htaccess”格式的文件来开启SSI (Server Side Includes)。 任何路径都可以...

    最土团购程序伪静态规则和无www域名转向有www域名规则

    2,将文件上传至根目录,然后用ftp将zuitu.htaccess重命名为.htaccess 3,登陆团购系统后台,设置,页面设置,开启地址重写。 4,团购系统后台缓存,清除,这样就可以了。 注意:本规则只适用于linux系统apache下;

    Apache是世界使用排名第一的Web服务器软件...

    6.支持重定向和重写规则 7.支持ssl。 pache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端...

    php图片伪静态

    本程序主要原理就是利用了地址重写实现了图片伪静态 .htaccess伪静态规则文件 topic.php主程序 images图片存放路径

    stacklife:StackLife 是一种基于社区的寻路工具,用于浏览合并后的哈佛图书馆系统的大量资源。 它使研究人员、教师、学者和学生能够找到他们需要的东西,并帮助他人向他们学习和学习他们的道路

    StackLife 依赖于 .htaccess 中的重写规则。 确保您在 httpd 配置中允许 .htaccess 并且您安装了 mod_php 和 mod_rewrite。 安装 使用 git clone 命令获取最新版本的 StackLife: git clone git://github.com/h

    推券客CMS淘宝优惠券网站源码 v1.8

    nginx环境 ,同样需要配置重写规则。 具体如何配置请咨询空间提供商。nginx规则如下:location / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^(.*)$ /index.php?s=...

Global site tag (gtag.js) - Google Analytics