Apache服务Rwrite功能使用

Rewrite也称为规则重写,主要功能是实现浏览器访问时,URL的跳转。其正则表达式是基于Perl语言。要使用rewrite功能,Apache服务器需要添加rewrite模块。如果使用源码编译安装,--enable-rewrite。有了rewrite模块后,需要在apache配置文件httpd.conf中全局配置段开启rewrite功能,或者在虚拟机主机配置段来设置也是可以的。开启指令:RewriteEngine on

要使用apache rewrite,先要理解什么是rewrite结尾标识符,以前一些常用表达式及apache rewrite变量。

1、几个结尾标识符:

R=code(force redirect) #强制外部重定向

G(force URL to be gone) #强制URL为GONE,返回410HTTP状态码

P(force proxy) #强制使用代理转发

L(last rule) #匹配当前规则为最后一条匹配规则,停止匹配后续规则

N(next round) #重新从第一条规则开始匹配

NC(no case) #不区分大小写

2、几个常用表达式

. #匹配任何单字符 ,? #匹配0到1个字符 ,* 匹配0到多个字符 ,+ 匹配1到多个字符

^ 字符串开始标志

3、Rewrite变量,用于匹配HTTP请求头信息,浏览器主机机,URL等。如下几个常用变量

HTTP headers ,HTTP_HOST,HTTP_ACCEPT,HTTP_USER_AGENT

使用举例:

将www.a.com跳转到www.b.com

首先在httpd配置文件启用rewrite功能模块

然后在虚拟主机中开启rewrite功能,并添加rewrite规则

go 复制代码
<VirtualHost *:80>
    ServerAdmin 77932692@qq.com
    DocumentRoot "/usr/local/apache2/htdocs/www.a.com"
    ServerName www.a.com
    #ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.a.com-error_log"
    CustomLog "logs/www.a.com-access_log" common
    RewriteEngine on
    RewriteCond %{HTTP_HOST}  ^www.a.com [NC]
    RewriteRule ^/(.*)$ http://www.b.com/$1 [L]
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin 77932692@qq.com
    DocumentRoot "/usr/local/apache2/htdocs/www.b.com"
    ServerName www.b.com
    ErrorLog "logs/www.b.com-error_log"
    CustomLog "logs/www.b.com-access_log" common
</VirtualHost>

最后重启apache服务,浏览器测试,地址输入www.a.com时自动跳转到www.b.com

Rewrite用法非常多,以上只是简单介绍其用法。

相关推荐
weixin_4400583113 小时前
2026知识付费小程序:年费全包零抽成,录播题库全功能覆盖
小程序·apache·小程序开发
Apache Flink1 天前
从结构化到多模态:Apache Flink,多模态数据处理的流式底座
大数据·flink·apache
阿里云云原生2 天前
乌镇大赛丨5 万奖金已备好!RocketMQ 等你一起打造全新 AI-Native 管控平台
apache·rocketmq
摇滚侠3 天前
Apache Skywalking 实战 阅读笔记 第三章
笔记·apache·skywalking
摇滚侠4 天前
Apache Skywalking 实战 阅读笔记 第二章
笔记·apache·skywalking
摇滚侠5 天前
Apache Skywalking 实战 阅读笔记 第一章
笔记·apache·skywalking
小小龙学IT23 天前
Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
开发语言·python·apache
Shepherd061923 天前
【IT 运维】Apache 使用 mod_remoteip 恢复 Cloudflare 后的真实访客 IP
运维·tcp/ip·apache
isyangli_blog23 天前
SDN 基本应用实践 —— 使用命令行实现简易防火墙功能实验报告
服务器·php·apache
小小龙学IT24 天前
Apache Pulsar 深度解析:从架构设计到生产落地
apache