html静态页面

伪静态

伪静态

伪静态页面,其目的是为了更好的被搜索引擎收录而通过一定的规则,把动态页面的地址转换成以htm或html结尾的地址,看起来是静态的,实际是依然是动态页面。

但是现在很多CMS网站程序,都可以把动态页面直接生成真静态的,就是所访问的页面是真真实实存的,根静态页面一样。这样的好处是访问速度快,不需要频繁去读取筛选服务器里的数据,减轻了服务器的压力,同时也能更好地被搜索引擎收录。

主要不足

1、当然犹如一篇文章的作者所说的:"如果流量稍大一些使用伪静态就出现CUP使 用超负荷,我的同时在线300多人就挂了,而不使用伪静态的时候同时在线超500人都不挂,我的IIS(互联网信息服务)数是1000。”确实是这样的,由于伪静态是用正则 判断而不是真实地址,分别显示哪个页面的责任也由直接指定转由CPU来判断了,所以CPU占有量的上升,确实是伪静态最大的弊病。

2、网站承受力低。

另外,会造成网站可承受同时在线人数剧减。如果你的网站可以保证1000人同时访问的话,那么做了伪静态处理之后,300人访问就足以让你网站挂掉。

3、网页打开慢。

伪静态页面打开速度快,简直太搞笑了,伪静态仍然要读取数据库,还额外的多了一个.重写网址.的过程,其他的步骤绝对不会比动态少,怎么会快呢?

4、大量的重复页面。

做了伪静态后,原有的页面也可以访问,这就造成了大量的伪静态页面和动态页面重复,对网站极为不好。

5、需要服务器的支持。

并不是所有的服务器都支持伪静态的,这无形中又增加了成本。

所以,如果网址中的动态参数没有达到想想搜索引擎收录的程度,动态要比伪静态好的多。

6、造成真正的静态网页无法访问。

如果php伪静态成html,那么真正的静态页就无法访问了。(可通过修改服务器配置解决,可是你又何必去费这把力气呢?)

方法步骤

找到apache的配置文件httpd.conf(文件在conf目录下)先必须得让服务器支持mod_rewrite

 

mod_rewrite

 

此模块提供了一个基于正则表达式

分 析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依 赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。

此模块可以操作URL的所有部分(包括路径信息部分),在服务器级的(httpd.conf)和目录级的(.htaccess)配置都有效,还可以生成最终请求字符串。此重写操作的结果可以是内部子处理,也可以是外部请求的转向,甚至还可以是内部代理处理。

一般mod_rewrite默认是不启动的,这时我们需要手动启用它。

找到AllowOverride None 改成 AllowOverride All

AllowOverride

常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即

< Directory />AllowOverride None< /Directory>

在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 ".htaccess" 作用域的指令都允许出现在 .htaccess 文件中。

而对于 URL rewrite 来说,至少需要把目录设置为

< Directory /myblogroot/>AllowOverride FileInfo< /Directory>

AllowOverride的参数

AuthConfig 允许使用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。FileInfo 允许使用控制文档类型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文档元数据的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。Indexes 允许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。Limit 允许使用控制主机访问的指令(Allow, Deny, Order)。Options[=Option,...] 允许使用控制指定目录功能的指令(Options和XBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令使用哪些选项。

:AllowOverride 的参数设置为ALL,表示整台服务器上都支持URL规则重写。Apache 服务器要读每个网站下目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则就不会有任何效果。  对于不同的网址,需要在APACHE中增加如下内容       Options FollowSymLinks   AllowOverride None

在.htaccess中有两种写法  第一种比较全 但是常用的是第二种

第一种:

Options +FollowSymLinks

IndexIgnore **

RewriteEngine on

# if a directory or a file exists, use it directly

RewriteCond  %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php

RewriteRule . Index.php 【L】

mod_rewrite

要求有followsymlinks,否则会显示500内部服务器错误。IndexIgnore让指定file排除在显示列表之外,也就是忽略显示,也就是不显示,file可以是文件全名,或是shell样式的通配符。RewriteCond %{REQUEST_FILENAME} !-f,这句话的意思是:如果文件存在,就直接访问文件,不进行下面的RewriteRule.%{REQUEST_FILENAME}  请求的文件名!-f  不是文件或不存在!-d  不是目录或不存在[L] 这是最后一个匹配项,不再往下匹配

RewriteCond还有别的  比如!-s 是否是长度不为0的regular的文件

-i 是否为symbolice link

-u 用subrequest检查某个URL是否存在

等等

YII中伪静态使用

Common->config->main.php

首先,在配置文件config/main.php的‘components‘ 段中,加入如下设置:‘urlManager‘=>array(    ‘enablePrettyUrl‘ => true, //对url进行美化    ‘showScriptName‘ => false,//隐藏index.php    ‘suffix‘ => ‘.html‘,//后缀   ‘enableStrictParsing‘=>FALSE,//不要求网址严格匹配,则不需要输入rules   ‘rules‘ => []//网址匹配规则

)

rules实例

‘sitemap\.xml‘ => ‘site/sitemap‘, //网站地图

‘sitemap\.xsl‘ => ‘site/sitemapxsl‘, //网站索引

‘page/‘=>‘page/index‘, //单页

‘//cat_/page_‘=>‘/‘, //分页

‘//page_‘=>‘/‘, //分页

‘//cat_‘ => ‘/‘,  //内容列表

‘tag/index/‘ => ‘tag/index‘,            //标签搜索页

‘/‘=>‘/view‘,

‘//‘=>‘/‘,

‘/‘=>‘/‘,

时间: 2024-10-11 20:53:47

html静态页面的相关文章

Node.js静态页面展示例子2

例程下载:https://files.cnblogs.com/files/xiandedanteng/nodejsStaticHtmlSample.rar 页面效果: Html页面代码(注意用文本编辑器如Editplus3保存文件时要指定编码为UTF-8,否则容易出现乱码): <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type" content="

DataTables学习:从最基本的入门静态页面,使用ajax调用Json本地数据源实现前端开发深入学习,根据后台数据接口替换掉本地的json本地数据,以及报错的处理地方,8个例子(显示行附加信息,回调使用api,动态显示和隐藏列...),详细教程

一.DataTables  个人觉得学习一门新的插件或者技术时候,官方文档是最根本的,入门最快的地方,但是有时候看完官方文档,一步步的动手写例子,总会出现各种莫名其妙的错误,需要我们很好的进行研究出错的地方. 官方网站(中文):http://datatables.club/ 官方网站:https://www.datatables.net/  二.简单的例子 怎样简单地使用DataTables?使用下方简单的几行代码,一个方法初始化table. $(document).ready(function

只用table模仿一个静态页面

尝试只用table标签来模仿一个静态页面,这样做可以很好的增加对网页结构理解. 要尝试模仿的页面如下: 附上我自己写的代码,因为只是用了HTML,没有用到CSS和js,所以有些样式写出来和原图有些出入 <!DOCTYPE html> <html> <head> <title>只用table来模仿一个网页</title> <meta charset="utf-8"> </head> <body>

过滤器为JSP文件生成静态页面

用过滤器为JSP文件生成静态页面,这只是一个简单的实例,客户端浏览器第一次请求JSP页面时,服务器将生成对应的HTML文件,以后访问同一JSP文件,将转为访问生成的HTML文件.一.过滤器 package com.kenfor.lyb.toHtmlfilter; import java.io.*; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.s

FontAwesome在Firefox下建立静态页面不显示的情况

1.在相对路径时发现firefox的问题(但是在Chrome下没有问题),还需进一步确认. 最开始是直接把FontAwesome的less直接替换掉Bootstrap的glyphicons字体,编译后在firefox下一直是不显示,经过单独引用FontAwesome的css及font才发现如果换成第14行的路径写法是可以正常显示的,如图: 2.情景描述 以往做静态页面原型的文件的文件结构是这样的: folder |----css |----images |----js index.html ..

C#根据网址生成静态页面

HoverTree开源项目中HoverTreeWeb.HVTPanel的Index.aspx文件 是后台管理的首页. 包含生成留言板首页,以及显示用户名,退出等功能. 根据网址生成页面的方法: bool CreateHtmlFile(string url, string path) { //http://keleyi.com/a/bjae/3d10wfax.htm string m_content = Utils.GetHtmlByUrl(Utils.GetAbsolutePath() + ur

PHP代码为什么不能直接保存HTML文件——&gt;PHP生成静态页面教程

1.服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器. 2.如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件,这样反而会降低运行效率. 3.如果是需要PHP控制HTML代码的输出,比如需要PHP判断用户是否登陆,如果登陆则输出A,未登录则输出B.这就需要PHP来进行控制了.HTML不能实现这样的功能 PHP生成静态页面教程 ,一些基本的概念 一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可

html模板生成静态页面及模板分页处理

它只让你修改页面的某一部分,当然这“某一部分”是由你来确定的.美工先做好一个页面,然后我们把这个页面当作模板(要注意的是这个模板就没必要使用EditRegion3这样的代码了,这种代码是Dreamwerver为了方便自己设计而弄的标识),把这个模板中我们需要改变的地方用一个与HTML可以区分的字符代替,如“{title}”.“[title]”.在生成静态页面的时候只需要把数据和这些字符串替换即可.这就是模板的含义了. 新建一个php页面和一个html页面[模板页];注:如果是从数据库调用数据,则

学习MVC之租房网站(十二)-缓存和静态页面

在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和页面静态化. 使用缓存可以降低数据库的压力,而使用页面静态化则可以降低Web服务器的压力. 一 缓存 ASP.NET下可用的缓存为System.Web.Caching.Cache,保存在服务器内存中,不适用于服务器集群,虽然也用没用过集群,但现在的主流都使用NoSQL数据库来做缓存,典型的有Redis和Mem

ASP.NET MVC生成静态页面

1.先付上封装好生成静态页的原代码: public class Common { #region 获取模板页的Html代码 /// <summary> /// 获取页面的Html代码 /// </summary> /// <param name="url">模板页面路径</param> /// <param name="encoding">页面编码</param> /// <returns