1、Rewrite规则简介:
Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。
基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。
基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。
2、举例说明:
下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是www.colorme.com和203.81.23.202都跳转到主机前缀为http://www.colorme.com.cn,避免当用户在地址栏写入http://colorme.com.cn时不能以会员方式登录网站。
NameVirtualHost 192.168.100.8:80
<VirtualHost 192.168.100.8:80>
ServerAdmin webmaster@colorme.com.cn
DocumentRoot "/web/webapp"
ServerName www.colorme.com.cn
ServerName colorme.com.cn
RewriteEngine on #打开rewirte功能
RewriteCond %{HTTP_HOST} !^www.colorme.com.cn [NC] #声明Client请求的主机中前缀不是www.colorme.com.cn,[NC]的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^203.81.23.202 [NC] #声明Client请求的主机中前缀不是203.81.23.202,[NC]的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^$ #声明Client请求的主机中前缀不为空,[NC]的意思是忽略大小写
RewriteRule ^/(.*) http://www.colorme.com.cn/ [L] #含义是如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://www.colorme.com.cn/, [L]意味着立即停止重写操作,并不再应用其他重写规则。这里的.*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用.就是引用前面里的(.*)字符。
</VirtualHost>
分享到:
相关推荐
在Apache的Rewrite规则中,`REQUEST_URI`代表了请求的原始URL路径,不包括协议、域名和查询字符串。而`REQUEST_STRING`通常指的是完整的请求行,包括方法(如GET或POST)、URL和HTTP版本等信息。在这个案例中,描述...
5. **调试与测试**:在实际部署之前,建议先在本地环境中充分测试Rewrite规则。可以利用`ErrorLog`等日志文件来追踪Rewrite引擎的工作过程,以便发现问题并及时调整。 通过上述介绍,我们可以看到Apache Rewrite ...
下面我们将详细探讨Apache Rewrite规则的常见应用场景和工作原理。 首先,为什么需要使用重写规则?这是因为随着网站的发展和变化,可能需要对服务器进行迁移、调整目录结构或更换域名。为了避免用户因为这些改变而...
为了调试Rewrite规则,Apache提供了`RewriteLog`和`RewriteLogLevel`指令,可以记录重写过程的详细信息,帮助开发者找出问题所在。 总之,Apache的Rewrite模块是Web服务器中的一个强大工具,通过灵活的规则设定,...
rewrite标志R[=code](force redirect) 强制外部重定向 强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。F(force URL to be forbidden)禁用URL,...
平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 2.Apache Rewrite的配置 Apache下的Rewrite配置主要有两种,一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.conf下书写。...
首先,Rewrite规则是一种基于Apache服务器的mod_rewrite模块功能,它允许我们通过定义规则来重写URL,使得原本动态的URL变得更加简洁、易读。对于搜索引擎优化(SEO)而言,伪静态URL有助于提高网页在搜索引擎中的...
作为一款知名的论坛系统,其官方提供了一套专门用于URL重写的规则,即“Rewrite规则”。本文旨在对这些规则进行详细的解析,并指导用户如何正确地应用这些规则。 #### 二、Rewrite规则基础概念 在深入解析Discuz!...
### 如何在Apache服务器下配置URL静态化的Rewrite规则 #### 一、了解URL静态化与Rewrite规则 **URL静态化**是指将原本动态的URL(如包含多个参数的PHP页面)转换成类似静态页面的形式(如.html或.htm)。这种做法...
模块`mod_rewrite`是Apache的一个核心模块,它提供了URL重写和URL路由的能力,这对于创建SEO友好的伪静态URL、实现URL短链、隐藏真实路径等场景非常有用。在`.htaccess`文件中启用`mod_rewrite`模块,你需要开启...
Apache服务器下的URL重写(Rewrite)规则是用于实现URL静态化的重要技术,这...总的来说,Apache的Rewrite规则是一个强大的工具,能够帮助开发者灵活地控制和转换网站的访问路径,从而提高网站的性能和搜索引擎的可见性。
### Apache URL Rewrite功能配置知识点详解 #### 一、Apache URL Rewrite简介 Apache URL Rewrite功能是Apache Web服务器的一...- **测试**:在正式环境中部署之前,务必充分测试URL Rewrite规则,确保其按预期工作。
Apache Rewrite Rule是Apache服务器中的一种功能,用于URL重写,它是Apache HTTP服务器的mod_rewrite模块的核心功能。这个功能使得Web服务器能够根据预定义的规则,将用户请求的URL转换为另一种形式,通常是为了优化...
Discuz! X2 配置URL伪静态Rewrite规则,里面详细讲解了apache服务器下 Discuz! X2 配置URL伪静态Rewrite规则和IIS下得Discuz! X2 配置URL伪静态Rewrite规则
下面将详细介绍如何在LNMP环境中配置Nginx的rewrite规则。 首先,了解rewrite规则的基本概念。Nginx的rewrite模块允许我们根据特定的条件重写请求的URI,这在实现URL路由、隐藏真实路径、SEO优化等方面非常有用。它...
以下是对Apache URL重写规则中一些常用标志的详细说明: 1. **R[=code]**: 强制外部重定向。此标志会在替代字符串前添加主机名和端口号,形成完整的外部URL,并使用指定的HTTP状态码进行重定向。默认情况下,状态码...
通过理解正则表达式和Rewrite规则,你可以实现复杂的需求,如URL重定向、路径隐藏、动态URL静态化等。在实际操作中,务必根据自己的需求和服务器环境调整相应的配置,确保Apache Rewrite模块正常工作。