apache rewrite

来源:互联网 发布:淘宝店铺联盟开通条件 编辑:程序博客网 时间:2024/06/05 01:08

 

  

.htaccess会用作该目录及其所有的子目录,所以多个就会影响性能,上线放入apache的配置文件比较好,个别必须指定目录的就放入目录


配置文件,首先我们开启rewrite          httpd.conf



然后创建.htaccess文件


配置好了,重启apache,这个重写规则,所有的htm文件都会去找html

我们修改.htaccess文件是不需要重启apache的所以在线下的情况是写在文件的,后续上线后最好写入到apache配置文件。就像这样 我们关闭.htaccess的重写功能,直接写入到配置文件

  

上线前可以多设置查看问题,上线后不要大于2,最好关掉。因为一次访问会产生很多记录日志,访问量大和久了就很庞大。

 

 301永久重定向,搜索引擎会把之前地址的评分加到之后,而临时重定向302会为新地址增加一个评分

内部重定向,地址不会改变,外部重定向,地址发生   R外部 
301一般用于我们网站更换域名,302用于比如我们觉得一个网站的内容很不错,我们重定向过去,这样会给我们的网站加分,可能被认为作弊,所以一般我们不用
  
第一条规则匹配了,进入第二条规则,如果不加C,第一条第二条规则都进入
 .htm  不变路径 找.php   
 .html 就匹配不到第一条就不会进入第二条,就还是找.html
 但是我们删除[C] ,就变成两条规则,.htm变成.php   .html 变成.php


 1.htm 会去找 first.php 就停止了

 删除[L],就会把第一条重写的结果拿到第二条规则,最终会 1.htm 重写到 second.php 


1.htm#index 不加 NE 默认会变成 index.htm%23index,我们加了 NE,不进行转码就还是  1.htm  -》index.html#index


Test/1.htm  -> tmp/1.htm           不加NC会区分大小写,直接找原地址


 某一个目录失效了,目录下下载全部失效   xcj/1.html 显示失效 ,用于零时下载目录,过期失效
不加QSA 默认 per/index.php?name=xiaoming  会变成 per.php?url=index.php 这就不是我们想要的,服务器默认截取的,我们要获取的url是index.php?name=xiaoming 所以加上QSA 就可以  per.php?index.php?name=xiaoming
 我们设置的重写地址不设置基准url,都是相当于本目录,或自己者加上觉得路径,如果我们写上基准url,就可以每次重写到基准url加上重写后的地址 

没有的话,内部重定向。1.htm 就会找./1.html
 外部重定向
localhost/1.htm 就会找 localhost/c:/wamp/www/1.html 这时候就可以看到路径发生变化,内部不会发生变化,只是找的文件是1.html,路径是不会发生变化的
加上 / 就带上路径问题就没有,localhost/1.htm  跳转到  localhost/1.html


我们加上基础路径就可以指定下面的重写到指定路径 
localhost/1.htm   ->  localhost/test/1.html


$1 是指前面匹配的第一个()里面值

 内部重定向,当我们输入 localhost/1.htm   因为匹配到的1不等于test 所以无变化,当我们输入 localhost/test.htm 就会匹配到,地址无变化,但是会去找locahost/test.html 

可以直接调用服务器变量

判断是ip地址 127.0.0.1我们转为localhost,因为是外部重定向,加上R
127.0.0.1/1.htm ->localhost/1.html  地址变化


 %1 是指上一个127.0.0.(.*) 这个括号的值,
意思值当这个括号的值是1的时候,我们就进入下面的重写规则,当然要满足第一条。因为我们本地都是127.0.0.1,所以%1是等于1的,实际情况这个%1不一定等于1
127.0.0.1/test.htm -> localhsot/test.html

我们没假or应该是不成立, www1不是目录,因为不存,重写是不符合规则的,我们输入127.0.0.1/1.htm  还是访问原地址

加了OR就可以了,因为我们代码是在WWW下,是有这目录的我们输入127.0.0.1/1.htm  会去找 127.0.0.1/1.html


 Map尽量放到用户访问不到的地方,这个配置尽量不让人知道,还有这个配置是只能再整个配置项,要放在主配置项的外面,不是针对目录,不要放到目录里面,这个配置是不能配置在.htaccess里的。 

写在配置项的外面

文件放在可以访问的路径外面


固定映射,127.0.0.1/test1.shtml  -> 127.0.0.1/pagetest1



因为我们的$1不符合dirs的路径,就没有映射到对应的路径,就进入的$1的手动设置的默认root,进入/root/test.php

我们访问设置的URL1就随机映射到/S3/URL1,再次刷新进入/S1/URL1.php


第二个规则符合



原创粉丝点击