设为首页 收藏本站
查看: 828|回复: 0

[经验分享] apache rewrite 规则示例

[复制链接]

尚未签到

发表于 2015-8-6 10:53:54 | 显示全部楼层 |阅读模式
1 RewriteRule ^itnews/([0-9]{4})/([0-9]{2})([0-9]{2})/([^/_]*)_([0-9]+).html$ http://www.test.com/news/$1$2/13_$5.html [R=301,C]
2
3 RewriteCond %{REQUEST_FILENAME} ^http://www.test.com(.*)$
4 RewriteCond %{DOCUMENT_ROOT}%1 !-f
5 RewriteRule ^http://www.test.com/news/([0-9]{6})/13_([0-9]+).html$ http://www.test.com/news/$1/33_$2.html [R=301,C]
6
7 RewriteCond %{REQUEST_FILENAME} ^http://www.test.com(.*)$
8 RewriteCond %{DOCUMENT_ROOT}%1 !-f  
9 RewriteRule ^http://www.test.com/news/([0-9]{6})/33_([0-9]+).html$ http://www.test.com/news/$1/11_$2.html [R=301,C]
10
11 RewriteCond %{REQUEST_FILENAME} ^http://www.test.com(.*)$
12 RewriteCond %{DOCUMENT_ROOT}%1 !-f
13 RewriteRule ^http://www.test.com/news/([0-9]{6})/11_([0-9]+).html$ http://www.test.com/news/$1/12_$2.html [R=301,L]
  实现功能把 http://www.test.com/itnews/2013/0101/phone_12354.html 跳转到http://www.test.com/news/201301/(33|11|12)_12354.html
  一些问题:
  1.flags [chain|C]跳转后,下一个RewriteRule需写绝对地址
  2.flags [chain|C]跳转后,RewriteCond 中{REQUEST_FILENAME} 为 http://www.test.com/a/a.html,非/var/www/test/a/a.html
  3.  RewriteCond %{REQUEST_FILENAME} ^http://www.test.com(.*)$ [OR]  RewriteCond %{DOCUMENT_ROOT}%1 !-f 错误,RewriteCond语句之间默认的是AND,如果想要OR,则要明确的写出来。
  



RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^news/([0-9]{6})/12_([0-9]+).html$  http://www.test.com/news/$1/13_$2.html [R=301,C]
RewriteCond %{REQUEST_FILENAME} ^http://www.test.com(.*)$
RewriteCond %{DOCUMENT_ROOT}%1 !-f
RewriteRule ^http://www.test.com/news/([0-9]{6})/13_([0-9]+).html$  http://www.test.com/news/$1/33_$2.html [R=301,L]
  3.



RewriteEngine on
Rewriterule ^content-([0-9]+)-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3
RewriteEngine on
Rewriterule ^content-([0-9]+)-([0-9]+)-([0-9]+).html  http://www.xxxx.com/index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3
  由于apache配置环境或者相对路径不同。
  4.



if(RewriteCond %{REQUEST_FILENAME} !-f [NC]){
Apache服务器日志里查询到许多类似这样的警告:
[warn] RewriteCond: NoCase option for non-regex pattern '-f' is not supported and will be ignored.
}
  5.
  



RewriteCond %{QUERY_STRING} ^a=(.*)$
RewriteRule ^test1.php$  http://www.test.com/test%1.html? [R=301,L]
  
  
  
  参考网站:
  http://www.sitepoint.com/apache-mod_rewrite-examples-2/
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
  速查表:

RewirteRule 标记含义描述
RRedirect发出一个HTTP重定向
FForbidden禁止对URL地址的存取
GGone标记URL地址不存在
Proxy将URL地址传递至mod_proxy
LLast停止处理接下来的规则
NNext再次从第一个规则开始处理,但是使用当前重写后的URL地址
CChain将当前的规则和紧随其后的规则链接起来
TType强制执行指明的MIME类
NSNosubreq只在没有任何内部子请求执行时运用本规则
NCNocaseURL地址匹配对大小写敏感(不区分大小写)
QSAQsappend在新的URL地址后附加查询字符串部分,而不是替代
PTPassthrough将重写后的URL地址传递给另一个Apache模块进行进一步处理
SSkip忽略之后的规则
EEnv设置环境变量
  

[table]

[tr]
[td=1,1,75]

(?:pattern)
[/td]
[td=1,1,658]

匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。
[/td]
[/tr]
[tr]
[td=1,1,75]

(?=pattern)
[/td]
[td=1,1,658]

正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
[/td]
[/tr]
[tr]
[td=1,1,75]

(?!pattern)
[/td]
[td=1,1,658]

正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
[/td]
[/tr]
[tr]
[td=1,1,75]

(?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-94713-1-1.html 上篇帖子: Apache与Tomcat负载均衡配置 下篇帖子: Apache Mina原理及典型例子分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表