如果要想用到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.jb51.net和70.40.213.183都跳转到主机前缀为//www.jb51.net,避免相同内容的网页有多个指向的域名,如http://jb51.net。
例二.将输入 en.jb51.net 的域名时跳转到www.jb51.net
例三.赛卡软件近期更换了域名,新域名为www.jb51.net, 更加简短好记。这时需要将原来的域名ss.jb51.net, 以及论坛所在地址ss.jb51.net/bbs/定向到新的域名,以便用户可以找到,并且使原来的论坛 URL 继续有效而不出现 404 未找到,比如原来的http://ss.jb51.net/bbs/tread-60.html, 让它在新的域名下继续有效,点击后转发到http://bbs.jb51.net/tread-60.html,而其他网页,如原先的http: //ss.jb51.net/purchase不会到二级域名bbs.jb51.net/purchase上,而是到 www.jb51.net/purchase
按照这样的要求重定向规则应该这样写:
基于服务器级的(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.jb51.net和70.40.213.183都跳转到主机前缀为//www.jb51.net,避免相同内容的网页有多个指向的域名,如http://jb51.net。
例二.将输入 en.jb51.net 的域名时跳转到www.jb51.net
例三.赛卡软件近期更换了域名,新域名为www.jb51.net, 更加简短好记。这时需要将原来的域名ss.jb51.net, 以及论坛所在地址ss.jb51.net/bbs/定向到新的域名,以便用户可以找到,并且使原来的论坛 URL 继续有效而不出现 404 未找到,比如原来的http://ss.jb51.net/bbs/tread-60.html, 让它在新的域名下继续有效,点击后转发到http://bbs.jb51.net/tread-60.html,而其他网页,如原先的http: //ss.jb51.net/purchase不会到二级域名bbs.jb51.net/purchase上,而是到 www.jb51.net/purchase
按照这样的要求重定向规则应该这样写:









