码迷,mamicode.com
首页 > Web开发 > 详细

Web服务器 Apache URL重写

时间:2016-07-19 13:57:00      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

一 、URL重写作用

实现伪静态

图片防盗链

自定义404错误页面


二、重写模块开启

apache的配置文件httpd.conf文件中开启:

LoadModule rewrite_module modules/mod_rewrite.so

、在哪儿配置重写规则?作用范围有何不同

      1) 可以使用在Apache主配置文件httpd.conf中(服务器级别,适用于拥有管理权限的服务器)

      2) 可以使用在httpd.conf里定义的虚拟主机配置中

      3) 可以使用在配置文件.htaccess中 (目录级别,适用于没有管理权限的虚拟主机) 
   

       假如你对你的的网站内容所在的服务器没有管理员权限,或者你的网站放在ISP的服务器
      上托管等等条件下,你无法改写主配置文件,然而你可以对你的WEB站点内容所在的目录
      有写权限,则你可以设置自己的.htaccess文件达到同样的目的。
      但你需要确定主配置文件中对你的网站所在的目录定义了下面的内容: 
     Options Indexes FollowSymLinks 
     AllowOverride all 
      否则你的.htaccess不会工作。 


、重写举例

1) 隐藏Apache下的某个目录,使得对该目录的任何请求都重定向到另一个文件。

a) httpd.conf的实现方法 

我们放下面的部分到/usr/local/apache/conf/httpd.conf :
      options Indexes followsymlinks 
      allowoverride all 
      rewriteengine on 
      rewritebase / 
      rewriterule ^(.*)$ index.html.en [R=301] 


      注:rewriteengine on 为重写引擎开关,如果设为off,则任何重写规则定义将不被应
      用,该开关的另一好处就是如果为了临时拿掉重写规则,则改为off再重启动Apache即
      可,不必将下面一条条的重写规则注释掉。 
      rewritebase / 的作用是如果在下面的rewriterule定义中被重写后的部分(此处为文件
      名index.html.en)前面没有/,则是相对目录,相对于这个rewritebase后面的定义也就
      是/usr/local/apache/htdocs/index.html.en,否则,如果此处没有rewritebase /这
      一项,则被重写成http://192.168.1.56/usr/local/apache/htdocs/manual/index.html.en,
      显然是不正确的。 


      不过这里我们也可以不用rewritebase / , 而改为: 
      rewriteengine on 
      rewriterule ^(.*)$ /index.html.en [R=301] 
      或者 
      rewriteengine on 
      rewriterule ^(.*)$ http://192.168.1.56/index.html.en [R=301] 


b> .htaccess的实现方法 


      我们先放下面的部分到httpd.conf:
      options Indexes followsymlinks 
      AllowOverride all 


      然后放下面的部分到/usr/local/apache/htdocs/manual/.htaccess中 
      rewriteengine on 
      rewritebase / 
      rewriterule ^(.*)$ index.html.en [R=301] 


     注:对文件.htaccess所作的任何改动不需要重启动Apache. 


Web服务器 Apache URL重写

标签:

原文地址:http://blog.csdn.net/jinxingfeng_cn/article/details/51954880

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!