thinkphp3.2中开启静态缓存后对404页面的处理方法

静态缓存很实用但是有时有些不需要静态缓存,如404页面,第一次访问返回404页面并缓存,第二次换回的状态就是200,属于正常访问,虽然人眼可以看出是404页面,但是搜索引擎不会的,而是把这个页面当成正常页面收录,那么问题就大了,404页面有一千个或更多,搜索引擎会认为你作弊制造大量垃圾内容,而且网站对安全也不利,等等。

解决方法:在404状态码之前将缓存动态关闭 C(‘HTML_CACHE_ON‘,false);


1

2

3

4

5

6

7

// 404

public function _404(){

    C(‘HTML_CACHE_ON‘,false);//关闭缓存

    header("HTTP/1.0 404 Not Found");

    $this->display(‘Public:404‘);

    exit;

}

这样所有的404页面就都不会缓存了,对不需要缓存的页面也可以这样做。

时间: 2024-12-25 23:07:38

thinkphp3.2中开启静态缓存后对404页面的处理方法的相关文章

thinkphp3.2开启静态缓存与缓存规则设置

网站的静态缓存对大访问量有很好的缓解作用,尤其对网站的大并发,可有效的缓解数据库的压力.在thinkphp中实现静态缓存很简单,thinkphp都已经封装好了直接调用即可. 静态缓存   首先设置 HTML_PATH 静态缓存文件目录,默认是在项目的应用目录下如:App/Html 在前台或后台打开静态缓存 1 'HTML_CACHE_ON'     =>    true,     // 开启静态缓存 3.设置静态缓存时间 1 'HTML_CACHE_TIME'   =>    3600,   

Nginx反向代理后配置404页面

关键词:proxy_intercept_errors.fastcgi_intercept_errors   在网上搜索404配置,有很多配置文章,但都是关于fastcgi_intercept_errors的,不过对我们的项目不起作用.我们的项目使用nginx做反向代理,通过域名区分不同的网站,配置fastcgi_intercept_errors不生效,需要配置proxy_intercept_errors.以下罗列出两种配置方式,供大家参考.   1.fastcgi_intercept_error

jQuery中,Ajax发送后刷新局部页面的方法

应用场景: 用户点击功能,JavaScript动态生成DOM树,然后用户点击删除,删除成功后,刷新该页面 思路: 将要发送的Ajax用一个函数存起来 然后,当用户点击时,执行该函数,然后生成该DOM树, 再然后,当用户点击该页面上的删除按钮时,发送一个删除命令的Ajax请求,删除完成后,再次调用该函数,请求数据,完成刷新需求. function navlist(){ $("#content").html( "<table class='table table-borde

THinkphp开启静态(动态)缓存的用法

<?php return array( //开启静态缓存 'HTML_CACHE_ON' => true, 'HTML_CACHE_RULES' => array( 'News:index' => array('{:module}_{:action}_{id}', 0) ) ); 开启静态缓存,并配置News控制器下的index方法对应的页面,会缓存到项目根目录下的HTML文件夹里,0表示永久缓存,换成10就是保存10秒. 文件名为News_index_10.html 页面被静态缓

thinkphp的静态缓存,数据缓存,快速缓存,查询缓存

// 静态缓存 // 'HTML_PATH' 缓存目录,这是个常量不是配置项,在入口文件中定义 // 'HTML_CACHE_ON'     =>    true, // 开启静态缓存 'HTML_CACHE_TIME'   =>    3600, // 全局静态缓存有效期(秒) 'HTML_FILE_SUFFIX'  =>    '.html', // 设置静态缓存文件后缀 'HTML_CACHE_RULES'  =>     array( // 定义静态缓存规则 // 定义整个

ThinkPHP 3.2.3 数据缓存与静态缓存

ThinkPHP 3.2.3 中手册中数据缓存的地址是:http://www.kancloud.cn/manual/thinkphp/1835 静态缓存的地址是:http://www.kancloud.cn/manual/thinkphp/1839 数据缓存 使用 S 方法进行数据缓存,缓存文件默认的方式是文件缓存(DATA_CACHE_TYPE = File),文件缓存默认的保存路径是 ./Application/Runtime/Temp 当使用默认的缓存方式时,不需要在配置文件中进行配置,直

【MyBatis学习13】MyBatis中的二级缓存

1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的.为了更加清楚的描述二级缓存,先来看一个示意图: 从图中可以看出: sqlSession1去查询用户id为1的用户信息,查询到用户信息会将查询数据存储到该UserMapper的二级缓存中. 如果SqlSession3去执行相同 mapper下sql,执行commit提交,则会清空该UserMapper下二级缓

thinkphp 删除所有缓存 Rumtime 以及 Html 静态缓存

<?php /** * This is not a free software, All Copyright @F.Z.B * Date: 14-8-12 下午4:08 * File: CacheController.class.php * Author: [email protected] */ namespace Api\Controller; class CacheController extends InitController { public function cleanAll()

apache用户认证和静态缓存疑惑

apache配置用户认证后 <Directory /data/www/abc> AllowOverride AuthConfig AuthName "z" AuthType Basic AuthUserFile /data/.htpasswd require valid-user </Directory> 第一次访问需要认证,然后清除浏览器缓存,第二次在访问该目录时,不需要认证.可是已经清除缓存了,为什么不需要认证就可以访问文件呢? apache配置静态缓存后