Apache域名跳转----配置rewrite模块

45 篇文章 5 订阅

Apache域名跳转----配置rewrite模块

1.rewrite模块简介

Apache中rewrite规则代码均写在<ifModule mod_rewrite>模块下.
Web服务可能需要多个域名,且彼此间要有主次,输入次域名后会自动转入主域名进行访问.

状态码:301 永久跳转;302 暂时跳转;

2.修改一下主配置文件

vi /usr/local/apache2/conf/httpd.conf
1)搜索:/rewrite
取消这行的注释
LoadModule rewrite_module modules/mod_rewrite.so
2)搜索:/httpd-vhost
取消这行的注释
Include conf/extra/httpd-vhosts.conf

3.简单的rewrite规则配置案例

vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
# 添加如下:( 无论访问www.cat.com或访问www.god.com都会跳转到www.007.com)
<VirtualHost *:80>
DocumentRoot "/tmp/007" 
<IfModule mod_rewrite.c>
    RewriteEngine on              # 打开rewrite功能
    RewriteCond  %{HTTP_HOST} ^www.cat.com$ [OR]
    RewriteCond  %{HTTP_HOST} ^www.god.com$
    RewriteRule ^/(.*)$ http://www.007.com/$1 [R=301,L]
</IfModule>
</VirtualHost>

4.语法检测

#检查配置文件是否有错误
/usr/local/apache2/bin/apachectl  -t

5.添加本地解析

 vi /etc/hosts 添加以下内容:
 ip地址 ww.007.com 
 ip地址 www.cat.com 
 ip地址 www.god.com

6.重启http服务

/usr/local/apache2/bin/apachectl  restart

7.测试

curl www.cat.com
或者
curl -I www.cat.com

8.相关rewrite规则

1)禁止指定user_agent
RewriteCond  %{HTTP_USER_AGENT} ^.*curl.*  [NC,OR]    # 禁止curl浏览器访问,NC不区分大小写
RewriteCond  %{HTTP_USER_AGENT} ^.*chrome.*  [NC]     # 禁止chrome浏览器访问,NC不区分大小写
RewriteRule  .* -  [F]                                # F 禁止URL,返回403HTTP状态码

2)限制某个目录

 RewriteCond  %{REQUEST_URI} ^.*/tmp/.*  [NC]         # 禁止访问/tmp目录
 RewriteRule  .* -  [F]              

9.rewrite变量

%{HTTP_USER_AGENT}                                    # 访问的user_agent
%{HTTP_HOST}                                          # 当前访问的网址,只指前缀。如:www.cat.com,不包含"http://"等
%{REQUEST_URI}                                        # 访问的相对地址,就是域名之后的部分,格式上包含最前面的"/"

如:www.007.com/catgod007/index.html                   # www.007.com表示HOST,catgod007/index.html表示URI

感谢大家,点赞,收藏,关注,评论!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
git-rewrite-author是一个Git命令,用于修改提交历史中的作者信息。 在使用Git进行项目开发时,每次进行提交操作都会记录下提交者的作者信息,包括姓名和邮箱。有时候我们可能因为一些原因需要修改这些作者信息,比如提交者输入了错误的名字或邮箱地址,或者是因为合并了其他仓库的代码,希望统一提交者的作者信息。 使用git-rewrite-author命令可以轻松地修改提交历史中的作者信息。它提供了一种简单的方式来重写Git仓库的提交者作者信息。使用该命令需要提供被修改的提交范围或者特定提交的哈希值,以及修改后的作者信息。 具体使用git-rewrite-author命令的步骤如下: 1. 打开命令行终端,进入到项目的Git仓库目录中。 2. 运行git-rewrite-author命令,并提供需要修改的提交范围或者特定提交的哈希值,以及修改后的作者信息。 3. Git会通过找到需要修改的提交对象,并将其中的作者信息进行修改。修改后的提交对象会被重新写入Git仓库中。 需要注意的是,使用git-rewrite-author命令会修改提交历史,因此需要小心操作。如果在多人协作的项目中使用该命令,需要确保与其他开发者达成一致,并尽量避免在共享的分支上进行修改。 总之,git-rewrite-author是一个方便修改提交历史作者信息的Git命令,可以帮助我们修正错误的作者信息或者统一项目中的作者信息。但在使用时需要谨慎操作,避免对其他开发者造成不必要的困扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cat God 007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值