Apache Rewrite 规则
Apache Rewrite是一项非常重要的功能,可以实现URL跳转,比如WordPress的永久链接等等,都需要服务器支持这个功能,你对Apache Rewrite这个功能了解吗,看看下面的简介文章
Apache Rewrite是一项非常重要的功能,可以实现URL跳转,比如WordPress的永久链接等等,都需要服务器支持这个功能,你对Apache Rewrite这个功能了解吗,看看下面的简介文章:Apache Rewrite 规则 n<=~ 1iY n}[KDE{ , V n1、Rewrite规则简介: ;vI *ThzdD nph8J n |E nRewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf) 和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。 '? `@7E ol n基于服务器级的 (httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngineon来打开rewrite功能;另一种是在局部里利用RewriteEngineon来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用 RewriteEngineon来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。 B S -:dyBw n基于目录级的 (.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。 <=w ? [*i nPQU3s $ n2、举例说明: : tjg g] nl`v sV^1 n下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是www.colorme.com和203.81.23.202都跳转到主机前缀为http://www.colorme.com.cn,避免当用户在地址栏写入http://colorme.com.cn时不能以会员方式登录网站。 `' [7~?Ew[ nNameVirtualHost 192.168.100.8:80 Q {.{# G nServerAdmin webmaster@colorme.com.cn j[ m_qohd7 nDocumentRoot "/web/webapp" "} ' 8`k d nServerName www.colorme.com.cn D0Vyh" ua nServerName colorme.com.cn QD.zU /F~> nRewriteEngine on #打开rewirte功能 ,YP 1$gj nRewriteCond {HTTP_HOST} !^www.colorme.com.cn [NC] #声明Client请求的主机中前缀不是www.colorme.com.cn,[NC]的意思是忽略大小写 > uAQi U nRewriteCond {HTTP_HOST} !^203.81.23.202 [NC] #声明Client请求的主机中前缀不是203.81.23.202,[NC]的意思是忽略大小写 Ig PV # nRewriteCond {HTTP_HOST} !^$ #声明Client请求的主机中前缀不为空,[NC]的意思是忽略大小写 i ll-OPeg nRewriteRule ^/(.*) http://www.colorme.com.cn/ [L] Q vv Jp^ n#含义是如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://www.colorme.com.cn/, [L]意味着立即停止重写操作,并不再应用其他重写规则。这里的.*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用.就是引用前面里的(.*)字符。 [ g ( n( R 4 PD n例二.将输入 folio.test.com 的域名时跳转到profile.test.com Af 2 =qe nlisten 8080 !Y ;H(.A/ nNameVirtualHost 10.122.89.106:8080 '}U_D:o.b nServerAdmin webmaster@c