opencart 优化url分析
接触到opencart,有对url进行优化,将真实的多层文件夹系统优化为例如www.pangxieke.com/product/category 优化为www.pangxieke.com/category
实现原理利用数据库存储seo_url和真实系统url。系统接收到seo_url后,转换为系统真实url
1、apache入口htaccess文件12RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]所有的请求都转换为_route_
2、index.php文件加载seo_url1$controller->addPreAction(new Action('common/seo_url'));
3、common/seo_url文件分析_route_参数,查询数据库,将url转换为系统真实对应的url例如 将category转换为product/category代码为
123456789101112131415161718192021222324252627282930313233343536& ...
OpenCart index.php分析
OpenCart 是一套比较简单的MVC架构的php开源电子商务程序.
OpenCart 首先将前台和后台完全分离开来,后台文件结构在admin/目录下; 而前台在catalog/目录,入口文件index.php在根目录下。各自都有一个可以做不同设置的配置文件config.php,在这里设置一些目录路径常量、数据库信息等。下面以OpenCart前台为例看看文件结构和MVC模式:单一入口,index.php 为入口文件
OpenCart基于MVC(+L)架构,在原始的OpenCart项目中,网站的主页是
catalog/controller/common/home.php
opencart程序结构:
admin 后台管理目录 -controller 程序逻辑控制目录 -model 程序模型目录 -view 程序模板目录 -language 语言包目录 - index.php 管理后台入口catalog 程序逻辑,模型,试图目录 -controller 程序逻辑控制目录 -model 程序模型目录 -view 程序模板目录 -language 语言包目 ...
datatable服务器端分页-附带搜索
最近写后台,觉得datatable的插件很好用。Datatables是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。
但是以前一直没有使用服务器分页。数据量庞大后表格加载太慢。因而研究了下服务器分页。遇到了不少坑,终于成功解决了问题.
一、html代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556<!DOCTYPE html><head><title>index</title><!-- DataTables CSS --><link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.7/css/jquery.dataTables.css"> <!-- jQue ...
阿里云mysql自动挂掉
使用阿里云服务器,经常发现mysql服务会自动挂掉,重启能够解决,因此也没有特别重视。朋友建议我查看mysql日志。
今天查看下,发现了如下错误。
有时候重启也失败,怀疑是内存不足。现在看到cannot allocate the memory for the buffer pool。明显是内存不足。使用free命令查看,内存只有67M
解决方法:1、在 /etc/mysql/my.cnf 的 mysqld 下增加下面一句:innodb_buffer_pool_size = 64M还要设置一下swap分区,因为我的vps是没有swap分区的,通过fdisk -l 和 1mount 看不到swap的信息,需要手动添加一下。
2、 添加swap分区的步骤:1234dd if=/dev/zero of=/swapfile bs=1M count=1024mkswap /swapfileswapon /swapfile添加这行: /swapfile swap swap defaults 0 0 到 /etc/fstab
说明:创建一个有 1024 个块的区 ...
php-fpm与fastcgi的区别
1、CGI 的作用CGI 是为了保证 web server 传递过来的数据是标准格式的,方便 CGI 程序的编写者。
web server(比如说 nginx)只是内容的分发者。
如果请求 /index.html,那么 web server 会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。如果现在请求的是 /index.php,根据配置文件,nginx 知道这个不是静态文件,需要去找 PHP 解析器来处理,那么他会把这个请求简单处理后交给 PHP 解析器。Nginx 会传哪些数据给 PHP 解析器呢?url、查询字符串、POST 数据、HTTP header 等等,CGI 就是规定要传哪些数据、以什么样的格式传递给后方处理这个请求的协议。当 web server 收到 /index.php 这个请求后,会启动对应的 CGI 程序,这里就是 PHP 的解析器。接下来 PHP 解析器会解析 php.ini 文件,初始化执行环境,然后处理请求,再以规定 CGI 规定的格式返回处理后的结果,退出进程。web server 再把结果返回给浏览器。
C ...
网站速度优化
使用站长工具查询网站,发现自己网站的访问速度明显低于朋友的网站。而都是使用阿里云,网站速度却差别很大。
使用百度统计,分析了一下网站速度,百度也给了一下建议方法。
优化了一下,速度稍微好了一些。记录下自己的优化方法。
1.合并压缩css和js合并文件能够将多次请求变一次。同时压缩文件大小,也能加快速度。网上有很多压缩工具可以直接使用。
2.使用css sprites合并图片一个网站经常使用小图标,这些小图片占用了大量的HTTP请求,因此可以采用sprites的方式把所有的图片合并成一张图片。
3.将js引用放在文件末尾,js放在外部文件中将JS代码放置外部文件中,通过JS调用。JS代码搜索引擎是不能读取的,放一堆在页面中太占地方了,我们同样跟CSS一样放置到外部文件中,通过<script type="text/javascript" language="javascript"src="JS文件路径"></scpirt> 这种形式来调用。同时文件加载需要时间,放在末尾时,最后加载,不影响主体文件的展示。 ...
JS事件首页有效次页无效
今天使用JS写一个click事件,发现首页有效次页无效。页面使用Jquery的datatable的AJAX分页。
对表格中的一行数据点击修改时,弹出修改框。使用class绑定。
123$('.editbtn').on('click',function(){ alert("hello");});
表格列表第一页能够正常点击,但是发现在ajax翻页到第二页时,点击无效。思考好久都没有解决。
最终同事帮忙解决。解决方式如下
1234567//tbl_content为table上的ID$('#tbl_content').on('click',function(e){ var e = e || event; if( $(e.target).hasClass('editbtn') ){ alert("hello"); }});
此时促使想根据详细的了解js的事 ...
centos6.5编译安装php7及LNMP环境
实践centos6.5编译安装 php7的LNMP生产环境
费时接近2天,终于成功编译安装了LNMP环境,使用php7。中间遇到很多问题,费时好久终于解决期间出现yum install 出错, 提示Cannot find a valid baseurl for repo: PUIAS_6_computational找好久,发现是镜像源配置错误 删除/etc/yum.repos.d/PUIAS_6_computational 重新配置镜像
一、准备工作:1、建立一个软件包目录存放,最小化安装centos6.5
12345678910111213141516171819202122mkdir -p /usr/local/src/#清理已经安装包rpm -e httpdrpm -e mysqlrpm -e phpyum -y remove httpdyum -y remove mysqlyum -y remove php#搜索apache包rpm -qa http*#强制卸载apache包rpm -e --nodeps #查询出来的文件名 例如rpm -e mysql-libs-5.1.73 ...
一键安装Redmine
1.简介对于一个新手,按照官方文档来安装redmine,非常复杂。BitNami提供redmine的一键安装程序,简单、易用、方便。
2.安装BitNami提供redmine的一键安装程序,地址:http://bitnami.org/stack/redmine.不仅仅是windows的有一键安装程序,linux也有一键安装程序。
我的安装环境是windows 7,下载地址https://bitnami.com/redirect/to/98612/bitnami-redmine-3.2.1-0-windows-installer.exe
跟大部分windows安装程序一样,一路默认“下一步”即可。需要注意的是,创建管理员账号的时候,需要将用户名称和密码记录下来,此用户即为redmine安装好后的管理员账号
注意:如果已经安装了apache和mysql,端口号就不能用80端口和3306端口,会提示端口已经被占用。我使用的82端口和3307端口
安装完后会自动打开浏览器,点击“Access BitNami Redmine Stack”即可访问redmine。输入管理员账号和密码,即可登录re ...
window版vcruntime140.dll丢失
前几天在公司的电脑新电脑上安装wamp最新版(php5.6和7),启动时,提示丢失vcruntime140.dll文件。
公司电脑window10,电脑是新的,刚新安装的系统。百度了很久,有说需要下载这个文件,然后在注册表注册。尝试下载,然后copy到对应目录,但是不管用。
后来才找到关键原因。原来需要安装微软的vc++2015版本才行
下载地址在下方:
VC14需要
http://www.microsoft.com/en-us/download/details.aspx?id=46881
VC11需要
http://www.microsoft.com/en-us/download/details.aspx?id=30679
VC9需要
64bit: http://www.microsoft.com/en-us/download/details.aspx?id=15336
32bit: http://www.microsoft.com/en-us/download/details.aspx?id=5582