设为首页 收藏本站
查看: 2509|回复: 0

[经验分享] Apache 地址重写简单介绍

[复制链接]

尚未签到

发表于 2015-8-3 07:11:43 | 显示全部楼层 |阅读模式
  一、为何需要地址重写
  网页地址变化,SEO需要更友好的地址,域名变化,等等情况下,为了让客户受尽了少的影响,最好的办法就是地址重写。
  
  二、在那里重写
  1、在Apache主配置文件httpd.conf中;以我本地XAMPP为例,就是要修改下面配置文件: D:\xampp\apache\conf\httpd.conf ;
  2、在httpd.conf里定义的虚拟主机配置中;
  如果你在一个Apache中配置了多个站点,就需要在VirtualHost中设置你的地址重写规则。
  参看: APACHE多站点配置方法
  Ubuntu中Apache多站点设置
  3、在基于目录的配置文件.htaccess中;
  .htaccess文件是针对目录进行配置的一种方法。Apache在提供一个资源时,会在此资源所在目录中寻找.htaccess文件,如果有,则使其中的指令生效。就类似ASP.net 中每个目录下都可以设置 Web.config 文件,下级目录的覆盖上级目录的配置;
  
  三、重写是如何工作的
  首先要确认已经编译加载了 mod_rewrite 模块:
  在 D:\xampp\apache\conf\httpd.conf 文件中,确认下面加载模块的代码没有被注释掉:
  LoadModule rewrite_module modules/mod_rewrite.so
  当外部请求到达Apache,Apache会调用重写规则中的定义来重写由用户浏览器指定请求的URL,最后被重写的URL如果是重定向,则送交浏览器做再一次请求;如果是代理则把重写后的URL交给代理模块请求最终的内容(Content),最后把内容送回给浏览器。
  
  四、如何重写
  以基于目录的配置文件.htaccess来重写为例演示如何重写:
  1、假如您对网站内容所在的服务器没有管理员权限,或者您的网站内容放在ISP的服务器上托管,无法改写主配置文件,但是您对Web站点内容所在的目录有写权限,则可以设置自己的.htaccess文件达到同样的目的。但您需要确定主配置文件中对您的网站所在的目录定义了下面的内容,否则您的.htaccess不会工作。 如下的 AllowOverride All 是必须的,否则.htaccess文件不起作用。
#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.  
#

    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all



    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All

  2、 在 D:\xampp\htdocs 目录下建立一个 .htaccess 文件,
  .前面没有信息的 .htaccess 文件,一般方式建立是不行的,建立方式参看这篇文章: Windows下自由创建.htaccess文件的N种方法
  3、一个简单的.htaccess 文件配置演示
  下面就是一个简单的 .htaccess 文件 配置,把对 http://localhost:8081/11 的请求跳转到 /my/2.php 来处理。

  RewriteEngine on
RewriteBase /
RewriteRule ^11$ /my/2.php  
  有关 .htaaccess 文件的更详细的配置信息可以参看:
  http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/howto/htaccess.html
  
  参考资料:
  Apache重写规则的常见应用及实例说明
http://9host.cn/php/200742218323311482.html
  含参数url(即url中带?)的apache重写问题
http://blog.iyunv.com/linglongwunv/archive/2010/01/12/5183019.aspx
  Apache重写规则的常见应用
http://777yjt.blog.163.com/blog/static/950693520061136304519/
  ApacheURL重写简介
http://cdwenyang.blog.163.com/blog/static/13569222007101411151535/
  .htaccess文件
http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/howto/htaccess.html
  Apache模块 mod_rewrite
http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html
  如何利用Apache的Rewrite功能实现动态网址到静态网址的转换
http://www.coolder.com/255-1-1

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-93422-1-1.html 上篇帖子: 版本控制Subversion TortoiseSVN apache VisualSVN笔记(转载) 下篇帖子: 如何让apache支持.shtml 让apache支持include标签
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表