什么是伪静态?为什么要用它?
伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。
这里提供了两种伪静态的实现方法:
一、修改apache服务器主配置文件
1.打开httpd.conf文件,寻找vhosts
Include conf/vhosts.conf
修改为:
#Include conf/vhosts.conf
2.关闭虚拟域名扩展
然后,重写规则实现,配置的Rewrite规则直接在httpd.conf下书写。
配置步骤如下:
首先去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
然后再在httpd.conf中书写如下规则:
RewriteEngine on
RewriteRule ^/test_(.*).html$ /test.php?id=$1
然后,当访问任何以test_开头,以.html结尾的文件时,将$1用与(.*)匹配的字符替换后(传参),就访问相应的test.php页面
二、项目的伪静态
1、打开httpd.conf文件,寻找vhosts
Include conf/vhosts.conf
修改为:
#Include conf/vhosts.conf
关闭虚拟域名扩展然后,重写规则实现,此种配置的Rewrite规则需在此目录下建立一个.htaccess文件来书写。配置步骤如下:
与项目入口文件index.php同级,创建.htaccess文件,在文件中书写规则
2、移除URL中的index.php,代码如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
3、添加URL后缀
在你的 config/config.php 文件中你可以指定一个后缀,
即如下,添加.html后缀:
$config['url_suffix'] = '.html';
4、设置你的路由规则
路由规则定义在 application/config/routes.php 文件中,在这个文件中你会发现一个名为$route 的数组,利用它你可以设置你自己的路由规则。在路由规则中你可以使用通配符或正则表达式。
$route['index_(:num)'] = 'Welcome/index/$1';
注:(:num) 匹配只含有数字的一段。(:any) 匹配含有任意字符的一段。
这样可以直接用index_1.html匹配访问,控制器Welcome的index方法,并且传递了一个$1的数字参数