重定向和伪静态学习笔记-----基于apache重定向基础知识

来源:互联网 发布:异世淘宝女王txt百度云 编辑:程序博客网 时间:2024/06/05 00:54



重定向:
linux:vim .htaccess生成
windows:cd www ,echo 1->.htaccess

RewriteEngine On
RewriteRule ^(.*)\.htm$ $1.html 这2 行是最基础的一种



什么是伪静态:

伪静态是相对真是静态来讲,只是改变了URL的表现形式,实际上还是动态页面
伪静态有了真静态一样的SEO,网站搜索打分跟静态页面一样
什么情况下用伪静态?
    数据变化非常大。如果平静在磁盘,用伪静态,如果在CPU,用真静态

什么事重定向?
通过各种方法将各种网络请求重新定个方向转到其他位置(分内部和外部)
内部:外部看不到。
外部:url发生变化
302临时,301永久重定向

htaccess有性能问题。开启后访问页面,要查找所有上级的目录中的htaccess文件
开发阶段可以,上线后最好把配置移植到主配置文件中(httpd.conf)

php重定向  header函数 header("Location:xxx.html");

RewriteEngine On
RewriteRule ^(.*)\.htm$ $1.html   
上面这段可以写到根目录的htaccess中,活着写到httpd.comf中,在主目录配置下,Allowride..  none下面加上
浏览器输入.htm会重定向到搜索.html



apache重定向原理:


请求---判断是否开启重定向规则---没开启--直接访问
开启了---访问规则--模式匹配---rewritecond----是---所有都满足--做地址替换---之后判断是否有更多规则----
判断是否改变---没匹配--直接访问资源
匹配了----外部,跳转---内部---在回到判断是否开启规则
在阿帕奇中应判断跳转次数



mod_rewrite:apache的URL操作模块 
包含  RewriteBase,    RewriteRule,    RewriteCond,    RewriteMap
RewriteBase

现在是内部重定向,在当前目录查找

换成外部重定向:


把根目录加了进来

在$1.html前加/,也是从根目录查找,跟没加R时一样
还有一种解决方案就是配置RewrieBase

RewriteCond
TestString使用说明



$1就是匹配第一个括号里的内容,这时候例如访问xxx.htm会跳转到xxx.html
那么在有cond的时候,如果你访问了test.htm会跳转到test.html

还有一种情况,可以直接使用系统变量值



浏览器中输入127.0.0.1/index.html会跳转到localhost/index.html
还有一种模式:

如果是2,那么在浏览器输入127.0.0.1/index.html不会匹配规则,必须是1

CondPattern使用说明:
-d 是否是目录 ,-f 是否是文件 , -F文件存在并且可以访问

RewiriteCond C:/wamp/www/ -d

[flag]使用说明:
[NC]:大小写不敏感,[OR]:条件判断或,如果不加默认AND
RewriteCond条件默认是AND,就是所有条件必须都满足  如果最后加 了[OR]就是或

这个时候有一个假的条件,那么访问localhost/test.htm还是localhost/test.htm
如果加了[OR],那么会匹配规则,跳转到寻找localhost/test.html

RewriteMap语法:

RewriteMap不能在.htaccess文件中配置。
1,txt格式

map.txt里放两个映射,规则里,如果访问shtml,根据文件名的不同映射到不同的php文件中
1.httpd.conf在主目录配置外做map

根据上面设置的,在www里建立map.txt,里面写映射
(这里缺失了,自己测试吧)
2,rnd模式
建立rnd.txt,httpd.conf里添加路径

例如:RewriiteMap dirs rnd:C:/wamp/www/map.txt
内容:


htaccess里配置规则:

root是默认的,匹配不成功的话跳转到root下
这里我们先输入一个不匹配的地址:

我们访问map.txt中的URL1或URL2时会匹配成功“


因为是随机映射,刷新的话会出现S1,S2等等



rewrite日志功能:

发送所有日志(window里在apache_error.)
上线环境调成1,2就可以



rewriteRule语法:



RewriteRule R flag说明
加R是外部重定向
301永久,302临时。搜索引擎在进行SEO评分时,301会把之前的评分转移到新地址去。
302会为新地址重新评分
所以从优化的角度,用301较好

外部永久重定向,地址栏也跳转过去了


RewriteRule C flag说明
链接下一规则

必须第一个规则成功了,才会匹配系下一个规则

RewriteRule L  flag说明
这条规则匹配合格了,立即停止重写操作,不再应用其他重写规则

阿帕奇的匹配规则是一个规则匹配成功结束后,把结果做为下一跳规则的输入
例如:访问test.htm,会跳转到first.php.
        如果没加L标签的话,会跳转到second.php中

RewriteRule NE  flag说明
不对URL中的特殊字符进行hexcode转码


加了NE,不会转移特殊符号

RewriteRule NC  flag说明
不区分大小写,大小写不敏感,加了NC,在地址栏里输入大小写都可以跟规则进行匹配

比如这条规则,没加NC的时候,在地址栏里输入localhost/test/1.htm会跳转到/tmp/1.htm
但是输入Test/1.htm会跳转到/Test/1.htm,不会进行规则的匹配。
那么加了NC标签之后,Test/1.htm会匹配规则,跳转到tmp/1.htm

RewriteRule G  flag说明
gone:请求的网页失效了
对应的apache的410
比如说某个目录失效了,

,那么访问这个目录下的文件,会提示:


RewriteRule QSA  flag说明
截取URI里面的值


没有加QSA的情况,访问per/index.php?name=xxx,所有的参数都去掉了

加了QSA:



rewrite正则表达式

. :匹配任意字符,1个字符
+:重复匹配1个到多个
*:0到多个
^:开始
$:结束位置
?:前一个匹配时可选,也就是可有可无
[chars]:[a-zA-Z]
[^chars]:取反





阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 全椒论坛 全椒网椒陵万象 全椒房产 全椒二手房 全椒吧 糊椒 看椒 圆椒 大椒 全椒县 全椒人论坛 朱婷引全欧哄抢 网游舰队之全知欧皇 欧铂丽全屋定制怎么样 欧邦全屋定制 欧典全屋整装 欧铂丽全屋定制好不好 帝欧全屋整装 欧菲斯 马家军被全歼的原因 志愿军哪个军被全歼 全残的定义和标准 残唐演义全125回有声评书 残画幅和全画幅的区别 初学者买全画幅还是残幅 全残的定义 保险全残标准 助残 全民目击 全民超神 全民影院 全民枪战 全民漂移 全民消砖块 全民武道 全民进化 全民领主 全民皆萌宠 全民学霸