Apache Rewrite url重定向功能的简单配置

softyun3年前服务器107

1.Apache Rewrite的主要功能
就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等

2.Apache Rewrite的配置
Apache下的Rewrite配置主要有两种,一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.conf下书写。配置步骤如下:
(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
(2)然后再在httpd.conf中书写如下规则:
RewriteEngine on
#当访问任何以t_开头,以结尾的文件时,将$1用与(.*)匹配的字符替换后,访问相应的test.php页面
RewriteRule ^/t_(.*)$ /test.php?id=$1

另一种是针对apache服务器下的某一目录的配置,此种配置的Rewrite规则需在此目录下建立一个.htaccess文件来书写。配置步骤如下:
(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
(2)修改httpd.conf文件中的"AllowOverride None"为"AllowOverride all",同时最好将Options也置为"all",否则可能会出问题。
(3)在目录中建立.htaccess文件,并用记事本打开,书写如下规则:
RewriteEngine on
RewriteRule ^/t_(.*)$ /test.php?id=$1

3.Apache Rewrite规则的书写
RewriteEngine on
RewriteRule ^/test([0-9]*)$ /test.php?id=$1
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]

RewriteEngine on
#当我们访问的地址不是以163开头的,那么执行下一条规则
RewriteCond %{HTTP_HOST} !^163 [NC]
RewriteRule ^/(.*) 163/ [L]

4.Apache Rewrite规则修正符
1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联

如果规则匹配则正常处理,以下修正符无效

8) T=MIME-type(force MIME type) 强制MIME类型
9) NS 只用于不是内部子请求
10) NC 不区分大小写
11) QSA 追加请求字符串
12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

免费二级域名申请靠谱吗,如何申请免费二级域名

1.什么是二级域名?二级域名是指注册在一级域名下面的域名,一级域名相当于是域名的根节点,二级域名是其下的子节点。在“example.com”这个一级域名下注册了“blog.example.com”这个...

浅谈Web服务器的安装与配置

Web服务器主要功能是提供网上信息浏览服务。 一、WEB服务器的介绍: 1、WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。2、最主...

phpstudy默认不支持64位php的解决方法

备忘一下:windows上用phpstudy比较简便,但是其默认的php所有版本都是32位的,有坑,比如int最大值。所以从php官网 点击打开链接windows.php/download#php-7...

同服务器网站是什么,同服务器网站的特点和应用

同服务器网站,也称为“共享主机”,是指多个网站共用一个服务器的主机环境。服务器作为用户网站的托管平台,通过虚拟化技术将不同用户的网站放在不同的虚拟主机上,实现多个网站共享同一服务器硬件资源。便宜由于共...

服务器的配置 web服务器配置方法【步骤详解】

服务器配置其实是针对安装有服务器操作系统的设备进行软件或者硬件的相应设置、操作。文件服务器,数据库服务器,应用程序服务器,WEB服务器是服务器的四种类型,今天我们就简单来了解下web服务器的配置步骤是...

phpstudy mysql启动不了的解决方法

很让人头疼的是Apache正常启动,MySql就是无法启动,百度上说的也不咋有用(不一竿子打死,最终解决办法的前身还是百度的),百度上大多数是说的端口问题,Apache是80,MySql是3306,然...