apache里面有一个很好用的服务,伪静态技术,也就是URL Rewrite(URL重写),它配合利用正则表达式,可以将url进行修改,可以利用网站的seo,也可以使url变得更加整洁,很是方便。

这里面牵扯到几个配置很有趣。有时候,我们需要修改apache默认配置,但是,我们却不想对apache的http.conf进行太多的修改,所以我们使用.htaccess(分布式配置文件)来达到我们的目的。.htaccess提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。

不过,我们需要让apache来读取它,这里就需要修改apache下的http.conf了。

我们的apache都有自己项目的默认根目录,在DocumentRoot "D:/www"下面(这里以我的路径为例子) ,有一个叫<Directory>的东西,它里面有这样一段代码:AllowOverride None,如果我们把None改成All,那么我们的www目录下所有项目都能读取到.htaccess了。

一个单词就解决了我们的问题,固然方便,但是它的弊端也很多。例如每次访问项目时,apache都会对每一个.htaccess文件进行读取,处理速度大幅度降低;每一个项目都能进行apache的配置修改,安全性大大降低等。

AllowOverride 它只能在<Directory>中生效,一般从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override,AlloOverride指令按类别决定了.htaccess文件中那些指令才是有效的,当AlloOverride设置成None时,相应的配置目录下的.htaccess文件是不被读取的,即无法生效。当AlloOverride设置成All时所以具有.htaccess的作用于的指令都会生效,意味着原apache指令会被.htaccess文件中的指令重写

因此有时候我们只需要添加一个<Directory>,路径指到个人项目就行了。例如:

<Directory "D:/www/my_app">

Options Indexes FollowSymLinks    #显示当前文件夹下的所有文件

AllowOverride All #允许重写apache默认配置

</Directory>

虽然如此,一般都尽可能避免使用.htaccess文件,任何希望放在.htaccess文件中的配置,都可放在主配置的<Directory>段中,而且高效

避免使用的原因主要有:

首先是性能。如果AllowOverride启用了.htaccess文件,则Apache需要在每个目录中查找.htaccess文件,因此,无论是否真正用到,启用.htaccess都会导致性能的下降。另外,对每一个请求,都需要读取一次.htaccess文件。还有,Apache必须在所有上级的目录中查找.htaccess文件,以使所有有效的指令都起作用(参见指令的生效)

其次是安全。这样会允许用户自己修改apache的配置,这可能会导致某些意想不到的修改,所以请认真考虑是否应当给予用户这样的特权。但是,如果给予用户较少的特权而不能满足其需要,则会带来额外的技术支持请求,所以,必须明确地告诉用户已经给予他们的权限,说明AllowOverride设置的值,并引导他们参阅相应的说明,以免日后生出许多麻烦。

Apache下的AllowOverride和.htaccess相关推荐

  1. linux apache htaccess,Apache下htaccess的配置使用详解

    Apache下htaccess的配置使用详解 看到群里很多前辈都在讨论.htaccess的用法,自己之前也小用过,只做了404的重定向,当然.htaccess的功能远不止这些,他还可以帮助我们做很多( ...

  2. Apache下PHP的几种工作方式

    PHP在Apache中一共有三种工作方式:CGI模式.Apache模块DLL.FastCGI模式. 一.CGI模式 PHP 在 Apache 2中的 CGI模式.编辑Apache 配置文件httpd. ...

  3. Apache下如何禁止指定目录运行PHP脚本

    网站程序的上传目录通常是不需要PHP执行解释权限,通过限制目录的PHP执行权限可以提网站的安全性,减少被攻击的机率. 下面和大家一起分享下如何在Apache和Nginx禁止上传目录里PHP的执行权限. ...

  4. apache禁止多目录运行php文件下载,Nginx Apache下如何禁止指定目录运行PHP脚本

    网站程序的上传目录通常是不需要PHP执行权限,通过限制目录的PHP执行权限可以提网站的安全性,减少被攻击的机率.下面和大家一起分享下如何在Apache和Nginx禁止上传目录里PHP的执行权限. Ap ...

  5. Apache下的配置文件httpd.conf、httpd-vhosts.conf 转

    Apache下的配置文件httpd.conf.httpd-vhosts.conf(windows) 2013-05-24 22:09 by youxin, 58 阅读, 0 评论, 收藏, 编辑 ht ...

  6. apache下用expires_module让浏览器缓存静态文件

    apache下用expires_module让浏览器缓存静态文件 apache配置静态缓存的原因: 第一点,       减轻服务器的压力. 第二点,       省去浏览器经常要去服务端下载CSS. ...

  7. 注意!Apache下这些与Hadoop相关的开源项目要退休了!

    不知不觉之间,小编发现 Apache下许多与Hadoop相关的开源项目竟然都要退休了! 包括像Sentry.Tajo和Falcon在内的13个与大数据相关的Apache项目,相继在11天之内宣布退出. ...

  8. Apache下的ArrayUtils工具类总结

    Apache下的ArrayUtils工具类总结 ArrayUtils中的方法: 1.add():将给定的数据添加到指定的数组中,返回一个新的数组. 2.addAll():合并两个数组. 3.conta ...

  9. 使用Apache下poi创建和读取excel文件

    一:使用apache下poi创建excel文档 1 @Test 2 /* 3 * 使用Apache poi创建excel文件 4 */ 5 public void testCreateExcel() ...

最新文章

  1. c++ QT学习笔记
  2. 抛开flash,自己开发实现C++ RTMP直播流播放器
  3. 【问链财经-区块链基础知识系列】 第三十课 区块链金融面临的四大挑战
  4. [Linux Mysql] Linux下Mysql的基本操作
  5. .NET 大会今日开幕 |这些白嫖福利不看肠子都悔青
  6. docker4dotnet #1 – 前世今生 amp; 世界你好
  7. HDU1812 - Count the Tetris
  8. 字符串暴力匹配算法+思路分析
  9. 【软件开发底层知识修炼】十四 快速学习GDB调试一 入门使用
  10. 模型驱动架构探索之游戏引擎设计 (二)粒度统一
  11. 运维利器screen
  12. 5 月编程语言排行榜:Java第一,R 跌出Top20,Python成最大赢家
  13. 十年肺腑之言:说说技术总监的“三板斧”
  14. 【求救】如何调用Windows系统自带的“选择用户”、“选择组”的对话框?
  15. java web导出excel_Web项目中数据导出Excel的实现方案
  16. 《工业设计史》第九章:职业工业设计师的出现
  17. HTML5酷站欣赏及学习网站收集
  18. MATLAB代码:面向削峰填谷的电动汽车多目标优化调度策略
  19. 使用 vscode 编辑html后缀但包含jsp、django、erb、php模板标签时,配置实现正确格式化文档
  20. 科沃斯机器人招股_603486_科沃斯招股说明书.pdf

热门文章

  1. linux下mysql数据库定时备份
  2. wechart微信小程序遇到的问题总结(一)
  3. h5调用手机摄像头获取图片用于人脸识别
  4. Dontplaywithkitty.io链游平台3000 创世猫NFT 2小时内全部售罄
  5. 安装zookeeper和hbase
  6. 格雷码与二进制码转换
  7. python3.8.2安装pygame教程_Python3.8安装Pygame教程步骤详解
  8. 群狼调研完成深圳宝安前海商圈消费者市场调查
  9. Hyper Terminal超级终端
  10. 必须掌握sprintf函数的用法