`
renzhen
  • 浏览: 247806 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

神奇的Apache Rewrite,程序员使用Rewrite的一些体会

阅读更多
   最近在公司开发工作中,一些功能使用了Apache Rewrite技术,我对这方面是一个菜鸟,在实践中边学边做,得到了一些经验和网上资料,来分享一下。
   Apache是十分流行的开源软件,Apache Rewrite技术官方有着很详细的文档,关于Apache Rewrite技术是什么、如何使用等有着很详细的描述,下面有文档的中文版本:
   http://lamp.linux.gov.cn/Apache/ApacheMenu/rewrite/index.html
  
   在了解了Apache Rewrite技术之后,会发现使用这门技术需要用到正则表达式知识,正则表达式曾经评为程序员的七种武器之一,应用范围很广,如果你不会,那就看看下面的文档学习一下:
  http://manual.phpv.net/regular_expression.html

   看完以上文档,理论上的知识就差不多够了,Apache Rewrite技术官方文档中还提供了很多实例和备注,基本上涵盖了Rewrite应用的方方面面。可以找一个和你实现功能差不多的的实例加以修改,又快又方便。
   http://lamp.linux.gov.cn/Apache/ApacheMenu/rewrite/rewrite_guide.html
   http://lamp.linux.gov.cn/Apache/ApacheMenu/rewrite/rewrite_guide_advanced.html

   下面说一下本人使用Apache Rewrite技术一些东西。
    1.PHP实现伪静态规则
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+) index.php/$1 [L]

   详细地址参看:http://renzhen.iteye.com/blog/1329635
    2. 根据二级域名分配不同的目录路径
    这个实例与下面的例子很像,详细可参看:
    http://www.zzxj.net/blog/fxs_2008/archive/2009/01/20/6.html
     其中有一个关键很重要,也很容易被忽视,就是在 httpd.conf 的最后,添加以下内容, 一般Rewrite规则可以写在httpd.conf和.htaccess中,在一般情况下是通用的,可是在这里一定要写在httpd.conf中。原因后面会介绍。
    3. 使用Rewrite屏蔽某一类URL的访问,可以参看官方文档的相关实例。
   
    最后我想再说说Rewrite规则写在httpd.conf和.htaccess中的一个很重要的不同点,注定了有些规则只能在其中之一编写:
引用
在 .htaccess 中设置的 rewrite rule,如果 REQUES_URI 变化,则apache会重新执行一遍 .htaccess 中的 rewrite rule,在 httpd.conf 中设置 rewriterule,则不会这个问题,是一锤子买卖

    其他的不同点可以参看如下页面:http://www.zzxj.net/blog/fxs_2008/archive/2009/01/18/1.html  这里就不赘述了。
    我的微博地址:http://weibo.com/jameren,欢迎大家关注。
0
0
分享到:
评论

相关推荐

    nginx rewrite重写.docx

    Linux中nginx的rewite url重写 总结 有一句话叫:“活到老,学到老,程序员亦是如此”

    ASP.NET的UrlRewrite URL重写伪静态实例

    利用静态文件可提高服务器的运行稳定和速度,坏处就是生成列表的时候会因为增加一条记录从而需要所有相关的列表进行重构,当然不排除有的公司已经攻克的这个问题,但对于大众程序员来说,他依旧是个问题,而且生成的...

    程序员5个刷题网站-YFCMF:YFCMF

    程序员5个刷题网站 YFCMF 企业系统 轻量级企业网站管理系统 环境要求: PHP >= 5.4.0(注意:PHP5.4dev版本和PHP6均不支持) PDO PHP Extension MBstring PHP Extension CURL PHP Extension 开启静态重写(方法参考:) ...

    9.30版最新彩虹易支付源码免授权全开源个人免签源码

    避免程序员在对接支付接口时候手忙脚乱,能够快速的帮助开发者快速集成到自己相应产品,提升效率。 此版本为最新版本发布时间为2022年9月30日 上传源码到服务器 访问域名进行安装 安装完成后设置伪静态。 Nginx...

    程序员5个刷题网站-oneindex-1:onedrive这个貌似原著

    程序员5个刷题网站 预览地址 ##毫秒级响应,纵然他前后端没有分离. ##服务器客户端双重缓存策略. ##缓存策略精细到文件夹,避免频繁调用api. ##特色文件管理,如同我的电脑一样轻松复制粘贴. ##特色网络防火墙功能,避免...

    iycms:iycms博客管理系统

    数据库文件使用composer安装所有依赖包$ composer installapache无须配置伪静态推荐使用主机面板或主机面板大部分环境不支持直接绑定到公共目录,必须要手工修改指定nginx伪静态规则location / { if (!-e $request_...

    php课程(共100多节)

    54:Apache Rewrite 拟静态配置 55:PHP5中使用PDO连接数据库 56:制作PHP安装程序的原理和步骤 57:PHP备份数据库原理和方法 58:快速设计一个企业网站之BIWEB 59:关于BIWEB常见问题和结构分析 60:PHP与数据库...

    搜索引擎优化高级编程(PHP版)

    虽然Jaimie身为一个计算机程序员,但是他更乐于参与营销方面的工作。他毕业于 Stevens Institute ofTechnology,获得计算机科学学士学位。2005年之前,他任职于RustyBrick. Inc.公司,并在Barry Schwartz的带领下...

    DBErp 进销存系统,是北京珑大钜商科技有限公司 基于 Laminas + doctrine 2 开发的一套进销存系统

    DBErp 进销存系统,是北京珑大钜商科技有限公司 基于 Laminas + doctrine 2 开发的一套进销存系统。适用于服务器系统:Linux(推荐)、Unix、...Web服务软件要求开启重写(Rewrite),使用Apache默认已经开启重写功能

    Gxlcms有声小说系统小说听书系统源码

    Gxlcms有声小说可以通过采集来丰富自己的网站内容,目前Gxlcms已经免费为大家开通了酷听网资源站...8、默认的伪静态规则(Apache,iis,nginx)都已经写好放在rewrite目录,只需要你的空间支持并将其移动到根目录即可!

    AspNetPager示例源码学习 7.2

    手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将...

    Linux 中 Nginx 1.10.1 源码包编译成可直接使用的软件包(CentOS 7.0)

    配置rewrite、gzip、ssl、状态监控、缓存清理,编译及安装到指定位置:/alidata/server/nginx-1.10.1 解压可以直接使用

    laravel5.0在linux下解决.htaccess无效和去除index.php的问题

    刚入手的laravel,记录下此次遇到的坑,文章写的不多,但程序员写博客文章是个好习惯,这个我坚持并努力的。 确保以下配置项已正确配置: LoadModule rewrite_module modules/mod_rewrite.so (去掉前面的#注释) ...

    AspNetPagerv7.4.1分页控件及Demo源码2012919

    手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将...

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程54:Apache Rewrite 拟静态配置 PHP100视频教程55:PHP5中使用PDO连接数据库 PHP100视频教程56:制作PHP安装程序的原理和步骤 PHP100视频教程57:PHP备份数据库原理和方法 PHP100视频教程58:快速...

    ASP.Net皮肤换肤控件

    手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将...

    AspNetPager控件及Demo源码 v7.4.4.rar

    手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将...

    AspNetPager7.2分页控件及Demo源码

    手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将...

    AspNetPager控件及Demo源码 v7.4.4.zip

    手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。   AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,...

Global site tag (gtag.js) - Google Analytics