重定向和伪静态学习笔记 您所在的位置:网站首页 apache重定向 重定向和伪静态学习笔记

重定向和伪静态学习笔记

2024-07-17 09:33| 来源: 网络整理| 查看: 265

重定向: 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]:取反



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有