设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 4932|回复: 4

[Apache] Apache中Rewrite基本应用总结 [复制链接]

LT管理团队

社区首席勤杂工

Rank: 9Rank: 9Rank: 9

签到
81
注册时间
2008-5-19
最后登录
2012-5-3
在线时间
1762 小时
阅读权限
200
积分
14979
帖子
2524
主题
1200
精华
25
UID
1

LT总司令

发表于 2008-5-28 18:10:00 |显示全部楼层
1.Rewrite调试
RewriteEngine on
RewriteLogLevel 9
RewriteLog /tmp/log/rewrite_log
RewriteRule http://www.main.com/dir/(.+) http://www.sub1.com/dir/$1 [R,NC]

2.SSL启用
RewriteEngine On
RewriteCond %{HTTPS} !^on$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

3.新域名重定向
原域名是www.aaa.com ,现在空间不变,域名切换www.bbb.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.bbb\.com$
RewriteRule ^(.*)$ http://www.bbb.com/$1 [R=301,L]


常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh:

    * 301 redirect: 301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
    * 302 redirect: 302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。
    * meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之?),会被判断为spam。

这里我们主要谈谈如何通过301 Redirect实现网页重定向
感谢大家对linuxtone的支持!

LT管理团队

社区首席勤杂工

Rank: 9Rank: 9Rank: 9

注册时间
2008-5-19
最后登录
2012-5-3
在线时间
1762 小时
阅读权限
200
积分
14979
帖子
2524
主题
1200
精华
25
UID
1

LT总司令

发表于 2008-5-28 18:12:57 |显示全部楼层
1) R[=code](force redirect) 强制外部重定向
   强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。
2) F(force URL to be forbidden)禁用URL,返回403HTTP状态码。
3) G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。
4) P(force proxy) 强制使用代理转发。
5) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N(next round) 重新从第一条规则开始运行重写过程。
7) C(chained with next rule) 与下一条规则关联
   如果规则匹配则正常处理,该标志无效,如果不匹配,那么下面所有关联的规则都跳过。
8) T=MIME-type(force MIME type) 强制MIME类型
9) NS (used only if no internal sub-request) 只用于不是内部子请求
10) NC(no case) 不区分大小写
11) QSA(query string append) 追加请求字符串
12) NE(no URI escaping of output) 不在输出转义特殊字符
    例如:RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] 将能正确的将/foo/zoo转换成/bar?arg=P1=zed
13) PT(pass through to next handler) 传递给下一个处理
    例如:
       RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理
       Alias /def /ghi
14) S=num(skip next rule(s)) 跳过num条规则
15) E=VAR:VAL(set environment variable) 设置环境变量
参考链接:
http://httpd.apache.org/docs/misc/perf-tuning.html
http://httpd.apache.org/docs/misc/rewriteguide.html
感谢大家对linuxtone的支持!

使用道具 举报

Rank: 6Rank: 6

注册时间
2009-4-17
最后登录
2012-5-22
在线时间
60 小时
阅读权限
70
积分
2220
帖子
28
主题
2
精华
0
UID
2540
发表于 2009-4-18 02:59:24 |显示全部楼层
Rewrite module 确实复杂的多 学好了真不容易
学习!奋斗!

使用道具 举报

LT技术团队

北京萍聚

Rank: 7Rank: 7Rank: 7

注册时间
2011-3-16
最后登录
2012-5-22
在线时间
406 小时
阅读权限
100
积分
29917
帖子
953
主题
25
精华
0
UID
12402
发表于 2011-4-15 17:12:29 |显示全部楼层
嗯是 啊 挺复杂的!

使用道具 举报

Rank: 8Rank: 8

注册时间
2012-3-2
最后登录
2012-5-22
在线时间
25 小时
阅读权限
90
积分
8549
帖子
13
主题
0
精华
0
UID
18343
发表于 2012-4-27 12:04:45 |显示全部楼层
学习!了!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢红之盟网络提供带宽支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2012-5-22 20:33 , Processed in 0.120193 second(s), 12 queries , Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部