`
renzhen
  • 浏览: 251581 次
  • 性别: 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
分享到:
评论

相关推荐

    iis URL Rewrite

    通过使用URL Rewrite,可以创建与网页内容更匹配的URL,从而提高搜索引擎的友好性。比如,将动态参数化的URL转换为静态、描述性的URL,可以提升网站在搜索引擎中的排名。 ### 四、错误页面处理 URL Rewrite模块还...

    上海php程序员招聘调查报告

    18. 能独立配置WAMP或LAMP环境,优化Apache,懂得Mod_rewrite模块和VirtualHost模块使用,熟悉Smarty、Zend Framework下的PHP开发。 而中高级别的PHP程序员要求更高: 1. 能分析客户需求和内部业务部门的项目需求...

    Url Rewrite 实现jsp页面伪静态化_凌风_.doc

    Url Rewrite Filter 是一款基于Java的开源工具,用于URL重写,类似于Apache服务器中的mod_rewrite模块。这个工具的主要目的是实现URL的伪静态化,提高网站的搜索引擎优化(SEO)效果,并且能够自动转换页面内的链接...

    zeal离线文档-Apache_HTTP_Server.docset

    Zeal是一款高效且用户友好的API文档查看工具,它允许程序员在本地快速查找和浏览各种编程语言和技术框架的官方文档。将Apache HTTP Server的docset导入到Zeal后,开发者可以在编写代码时便捷地查阅服务器配置、模块...

    Zend Framework2的程序员参考指南

    教程假设你使用的是PHP 5.3.3、Apache和MySQL,以及已启用PDO和mod_rewrite扩展。 1. **步骤**: - 设置开发环境,包括PHP、Apache和MySQL。 - 创建项目目录结构。 - 配置Apache的重写规则以支持ZF2的路由。 - ...

    Apache源码

    2. **Modules**: Apache的核心功能是模块化的,比如mod_rewrite用于URL重写,mod_ssl用于SSL/TLS加密,mod_deflate用于数据压缩等。开发者可以查看这些模块的源码了解它们的工作机制,并能根据需要创建自己的模块。 ...

    Apache 2.0.39的VC++源代码.zip

    例如,`mod_rewrite`用于URL重写,`mod_deflate`用于内容压缩,通过分析这些模块,可以了解如何在C++中实现动态加载和插件化设计。 2. **多线程与并发处理**:Apache 2.0.x引入了多线程支持,如`mpm_winnt`...

    nginx rewrite重写.docx

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

    php程序员菜鸟成长手记 php入门教程 pdf

    其中Apache因其稳定性和兼容性而被广泛使用。 - **安装Apache**:可以通过包管理器如apt-get(Ubuntu)或yum(CentOS)来安装Apache。 - **配置Apache**:配置文件通常位于`/etc/httpd/conf/httpd.conf`(Linux)或...

    php的初级程序员面试题

    - URL重写:使用 `.htaccess` 和 `mod_rewrite` 实现友好的URL 11. **OOP(面向对象编程)** - 类定义:`class ClassName {...}` - 对象创建:`$obj = new ClassName();` - 属性与方法:类中的变量和函数 - ...

    关于Java重写 urlrewritefilter-4.0.3 版本参数个数问题

    `iteye`等技术社区经常有程序员分享他们在使用`urlrewritefilter`时遇到的问题及解决办法。 总的来说,解决`urlrewritefilter-4.0.3`版本参数个数问题的关键在于理解和适应新版本的更新,检查配置文件、代码以及...

    php程序员面试题(含html、JavaScript、php和mysql)

    ### PHP程序员面试题详解 #### 技术兴趣与学习方向 **问题:**你对哪些技术比较感兴趣?你想学习的技术有哪些? **解析:**这个问题旨在了解应聘者的技术偏好和发展方向。回答时应突出自己对技术的热情及对未来...

    TinyCMS.rar_伪静态

    Rewrite是Apache服务器中的一个模块,它允许我们通过正则表达式重写URL。在TinyCMS中,通过配置.htaccess文件来设置Rewrite规则,实现动态URL到静态URL的转换。例如,一个动态URL如`/index....

    Apache: mod_cpp-开源

    Apache是世界上最流行的Web服务器软件,而mod_cpp是一个针对Apache的开源模块,它的出现极大地扩展了Apache的功能性。...对于有经验的C++程序员和希望扩展Apache功能的系统管理员而言,这是一个非常有价值的工具。

    wamp 配置文档,windows下安装mysql,php,apache。

    - 使用`/usr/local/apache2/bin/apachectl stop`命令停止服务。 ##### 2. 安装MySQL数据库 MySQL数据库用于存储Web应用程序的数据。 - **步骤**: - 解压mysql-5.0.27.tar.gz到指定目录。 - 使用`./configure`...

    php-laravel框架学习笔记1.doc

    同时还要启动 Apache 的 rewrite 模块后需要重启 Apache。 五、Laravel 框架的路由规则 Laravel 框架有一个很特别的地方,所有的 url 的访问都必须要事先定义好一个路由规则。对比之前的 TP|CI 框架 index....

    windows平台伪静态的设置方法

    对于ASP程序,使用rewrite.dll+http.ini组合,而对于ASP.NET程序,可以通过web.config进行配置。这两种方法都需要一定的技术基础,尤其是对于HTTP重写规则的理解和配置。正确设置伪静态不仅有助于搜索引擎优化,还...

    centos/redhat httpd2.4.27版本rpm包

    3. **httpd-devel**: 它包含了开发Apache模块所需的头文件和库,使得程序员可以扩展或自定义Apache的功能。 4. **httpd-manual**: 包含了Apache HTTP Server的官方文档,为用户提供了详细的使用指南和参考信息。 5. ...

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

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

Global site tag (gtag.js) - Google Analytics