zoukankan      html  css  js  c++  java
  • .htacess的url重写(支持伪静态)

    html网页纯静态:

    1、加载的时候不需要调用数据库,打开速度快,另外减少了服务端脚本的匹配时间。
    2、减少了服务器对数据响应的负荷。
    3、从安全角度讲,纯静态网页不易遭受黑客攻击。
    4、从网站稳定性来讲,即使网站代码或数据库出了问题,静态网站也不会受到影响。

    伪静态既url重写,就是截取传入的Web请求并自动将请求重定向到其他url的过程,其目的主要是通过重写URL的方法实现去掉动态网页的参数,从而更加有利于搜索引擎的收录。

    伪静态的优点有5点:
    1、维护方便,网页每天都自动变化,不用维护或者说极大地减少了维护量。
    2、可以方便的实现对搜索引擎的优化,易于被搜索引擎收录。
    3、缩短了url的长度,隐藏文件实际路径提高了安全性,易于用户记忆和输入。
    4、占空间比较小,不像纯静态那样多占用近过多的空间。
    5、安全性能通过url地址隐藏或加密,让黑客无法找到真实的动态页面,同时动态文件不需要太高的权限,从而避免了木马的注入。

    伪静态最大的缺点就是会占用一定量的CPU使用率,增加服务器的响应时间。

    综上所述,我们该怎么选择呢?
    1、既然真伪静态和伪静态对搜索引擎的效果一样,我们就可以选择伪静态了,毕竟它的优点是纯静态不可取代的。
    2、大量使用伪静态会照成CPU超负荷,所以我们只要不大量使用就可以了,设计在线使用了相应的编译缓存技术,己经很好的优化并解决这个问题了。
    3、静态只是针对搜索引擎的,不需要给用户使用,我们有着很成熟的伪静态技术,没有必要去做真静态,给用户造成过多不必要的麻烦。

    从以上的讨论得知伪静态的重要性,但是如何实现呢?具体实现方案如下:

    我的测试目录是http://localhost/test/       在该目录下新建.htacess文件

    在.htacess添加如下代码:

    <IFMODULE mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule ^t_(.*).php$ test.php?id=$1 [L]
    </IFMODULE>

    我在我的测试目录下新建一个test.php,编辑如下内容:

    <?php

         echo $_GET['id'];

    ?>

    然后在我的浏览器输入:http://localhost/test/t_3455.php

    页面输出:3455

    我们来看看常见的 Discuz! 7.x 论坛程序的网址伪静态化 .htaccess 文件内容:

    RewriteEngine On
    RewriteBase /bbs
    RewriteRule ^archiver/((fid|tid)-[w-]+.html)$ archiver/index.php?$1
    RewriteRule ^forum-([0-9]+)-([0-9]+).html$ forumdisplay.php?fid=$1&page=$2
    RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
    RewriteRule ^space-(username|uid)-(.+).html$ space.php?$1=$2
    RewriteRule ^tag-(.+).html$ tag.php?name=$1

    “RewriteEngine On”,开启 Rewrite 规则开关;
    “RewriteBase”,指后文的 RewriteRule 重写规则生效的相对路径;
    “RewriteRule”,定义一条重写规则。后面的字符串通过正则表达式进行匹配,匹配字符串以 ^ 开头并以 $ 结尾,替换字符串中 $1 指被第一次被匹配成功的字符串。

    此处重写规则的功能:比如当访客访问 http://www.example.com/bbs/forum-21-3.html 时,网站内容将显示为 http://www.example.com/bbs/forumdisplay.php?fid=21&page=3 的内容(访问被重写网址时,网址不会被重定向/跳转)。

    另外,如果在某条重写规则末尾添加 [R] 或 [R=301] 等时,访客访问被重写网址时,客户端将被执行重定向(跳转)到重写后的网址。

  • 相关阅读:
    strace命令跟踪ping调用函数整理
    小知识记录:第XII篇
    学习笔记:《Kali Linux 2 网络渗透测试 实践指南 第2版》之主动扫描(Nmap)
    学习笔记:《Kali Linux 2 网络渗透测试 实践指南 第2版》之被动扫描(Maltego)
    学习笔记:《Kali Linux 2 网络渗透测试 实践指南 第2版》之kali Linux使用基础
    《柯尔特思维教程》-第3章(交互)- 前言
    《柯尔特思维教程》-第2章(组织)- 前言
    《柯尔特思维教程》-第1章(广度)- 前言
    《柯尔特思维教程》-第3章(交互)- 第10节:结果
    《柯尔特思维教程》-第3章(交互)- 第9节:失误-2:错误和偏见
  • 原文地址:https://www.cnblogs.com/psz1992/p/4444854.html
Copyright © 2011-2022 走看看