开发者社区> 技术小阿哥> 正文

Apache mod_rewrite规则重写的标志一览

简介:
+关注继续查看

Apache mod_rewrite规则重写的标志一览

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=zoo
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) 设置环境变量

===============================================

 

1、Apache中vhosts里相同的ServerName配置的生效顺序:第一匹配

   在Apache的配置文件httpd.conf中,如果有相同的配置选项,应是后面的参数覆盖前面的参数(记得在手册以及网上这样说过,写本文时没有验证)。
  
   然而在apache中Include conf/extra/httpd-vhosts.conf时,是从前面开始读取,当match到<VirtualHost  >,且match到ServerName时,就不再向后面读了。如以下配置:
<VirtualHost *>
    DocumentRoot /Docdir/ce
    ServerName ce.cn
 </VirtualHost>
<VirtualHost *>
    DocumentRoot /Docdir/ce/ce.cn
    ServerName ce.cn
</VirtualHost>
则应是匹配上面的一个配置,就是读/Docdir/ce下面的文件。
 

2、去NAS迁移


  1. 1、删除 
  2. #<IfModule mod_alias.c> 
  3. #       Alias /file/ "/mnt/efs/www/smartform/" 
  4. #</IfModule> 
  5.  
  6. 2、打开rewrite功能(必要时检查apache是否已经加载rewrite模块: ./apachectl -l) 
  7. 在修改virtualhost.conf时,需要先打开rewrite功能:RewriteEngine On 
  8.  
  9.  
  10. 3、添加RewriteRule  
  11.  RewriteRule ^/file/(.*)   http://*****/download/www/smartform/$1 [L,P] 

3、login

RewriteRule ^/a_group_uni_style_login:${a_intl_uni_connection_ssl_port}/(.*)$ http://style.a.com/$1 [L,P]

  RewriteRule ^/ali_group_unicorn_style:${alibaba_intl_unicorn_connection_ssl_port}/(.*)$ http://style.aliunic.com/$1 [L,P]

4、在httpd.conf中将virtualhost.conf进来

<generate template="virtualhost.conf.vm" destfile="conf/virtualhost.conf" charset="GBK" />

 

 本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/988746,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Apache Typecho框架启用地址重写
地址重写有利于SEO优化,开启地址重写可以去掉Typecho框架中的index.php后缀,该后缀如下。
46 0
使用apache mod_rewrite方法随机提供payloads
本文讲的是使用apache mod_rewrite方法随机提供payloads,本文中讲述的方法更适用于真实渗透测试环境中,因为电子邮件钓鱼往往是威胁到整个公司,而不是只威胁到红队的测试环境。因为电子邮件钓鱼具有高针对性,并且手动设置攻击载荷对攻击来说也是很麻烦的。
1503 0
利用apache的mod_rewrite做URL规则重写
使用mod_rewrite做url重写,伪静态,做过很多次,这次用几个例子记下来,便于后面查用。 使用方法:  1.在conf目录的httpd.conf文件中找到:            LoadModule rewrite_module modules/mod_rewrite.
1216 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
贺小令|Apache Flink 1.16 简介
立即下载
Apache Dubbo3 源码深入解读
立即下载
Apache Dubbo 微服务开发从入门到精通
立即下载