文档章节

apache重定向

ali安东尼
 ali安东尼
发布于 2017/08/25 15:56
字数 596
阅读 9
收藏 0

很多时候,由于项目变更的需要,我们会将一个网站的域名变更为另外一个域名,又或者是一个地址转变为另外一个地址。而在项目里进行跳转并不是一个明智的选择,这个时候我们就可以使用到apache的mod_rewrite模块。

mod_rewrite 提供了基于正则表达式规则动态修改传入的请求的 URL 的方法。 这允许你以自己喜欢的任意方法映射任意 URL 到你的内部 URL 结构。

当然启用它的第一步就是要加载相关的模块,你可以打开httpd.conf将mod_rewrite前的#号注释掉。

LoadModule rewrite_module modules/mod_rewrite.so

然后你需要重启apache服务器,这样rewrite模块就开启了。

这个模块可以在服务器上下文 (httpd.conf),虚拟主机上下文 (<VirtualHost> 指令块),目录上下文 (.htaccess 文件和 <Directory> 指令块) 对完整的 URL (包含目录信息部分和查询字符串部分) 操作。

重写结果可以进行多种规则处理,如:内部的后续处理,外部请求重定向,甚至透过内部代理, 这取决于你为规则附加的标志。

而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

常用的rewrite规则实例

301重定向  

将www.aaa.com 301 到 www.bbb.com


RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.aaa.com [NC]

RewriteRule ^(.*) http://www.bbb.com/ [R=301,L]

    

伪静态

/info/info.php?infoid=100转换为/info/100.html个格式


RewriteEngine on

RewriteRule index.html index.php

RewriteRule (\d+).html$ info\.php\?infoid=$1

内部重定向

通过 http://nat_server/forum 来访问web_server上面提供的论坛服务,而forum目录在 /var/www/html 下


RewriteEngine   on 

RewriteBase     /forum/ 

RewriteRule     (.*) http://web_server_ip/$1 [P,L]
由睿江云人员提供,想了解更多,请登陆www.eflycloud.com

© 著作权归作者所有

ali安东尼
粉丝 3
博文 192
码字总数 173101
作品 0
广州
私信 提问
修改.htaccess域名www与不带www301重定向跳转重写URL

Apache下web环境,通过修改.htaccess文件即可实现重写URL,尤其是处于SEO考虑,将域名格式统一,例如将带www的域名统一301重定向到不带www的域名,或者将不带www的域名统一301重定向到带www...

云吞铺子
05/12
0
0
apache httpclient-4.3.1.jar重定向问题!

apache httpclient-4.3.1.jar 该包我找了官方网站也没找到怎么防止网页重定向,我不要重定向!求大神 我写的方法 java.net下面的 httpurlconnection方法 这个class只需要 就可以杜绝了重定向...

开源oschina
2014/01/11
6K
4
nginx 301 302 重定向

nginx 301 302跳转的详细说明 server {   listen 80;   server_name abc.com;   rewrite ^/(.*) http://www.abc.com/$1 permanent;   access_log off;   } last – 基本上都用这个......

柠檬草的味道
2014/04/10
2.3K
0
nginx 301 302跳转配置方法 与 总结

首先看一个完整代码示例,关于nginx 301 302跳转的。 301跳转设置: 302跳转设置: 在看下关于nginx 301 302跳转的详细说明文档 last – 基本上都用这个Flag。 break – 中止Rewirte,不在继...

游鱼彩虹
2016/12/26
37
0
11 种不同语言实现的 301 网页重定向

为什么需要使用301重定向: 1. 保留搜索引擎的排名: 301 重定向是最有效的方法,不会影响到搜索引擎对页面的排名。 2. 保留访客和流量: 如果你将页面链接到大量方法可以访问过的地址,如果不是...

红薯
2012/05/09
566
5

没有更多内容

加载失败,请刷新页面

加载更多

java发送html模板的高逼格邮件

最近做了一个监测k8s服务pod水平伸缩发送邮件的功能(当pod的cpu/内存达到指定阈值后会水平扩展出多个pod、或者指定时间内pod数应扩展到指定数量),一开始写了个格式很low的邮件,像下面这样...

码农实战
8分钟前
4
0
php-fpm配置文件详解/MariaDB密码重置、慢查询日志

来源:https://blog.csdn.net/Powerful_Fy php-fpm主配置文件路径:/usr/local/php-fpm/etc/php-fpm.conf #位于安装php安装目录下的etc/目录中,该文件中最后一行将配置文件指向:include=/...

asnfuy
13分钟前
2
0
川普给埃尔多安和内堪尼亚胡的信

任性 https://twitter.com/netanyahu/status/1186647558401253377 https://edition.cnn.com/2019/10/16/politics/trump-erdogan-letter/index.htm...

Iridium
34分钟前
10
0
golang-mysql-原生

db.go package mainimport ("database/sql""time"_ "github.com/go-sql-driver/mysql")var (db *sql.DBdsn = "root:123456@tcp(127.0.0.1:3306)/test?charset=u......

李琼涛
今天
5
0
编程作业20191021092341

1编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时 间。使用#define或const创建一个表示60的符号常量或const变量。通过while 循环让用户重复输入值,直到用户输入小于或等于0的值...

1李嘉焘1
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部