IIS7.5安装配置urlrewrite伪静态DedeCMS

       DedeCMS设置为静态页面,能减轻服务器压力,对于更新内容不是很多的企业站还是非常好的,也利于搜索引擎蜘蛛抓取,缺点是每次需要手动更新,对于内容较多、分页较多的小说站、图片站就非常麻烦。

       一般的服务器都可以采用动态页面,为了更好的获得搜索引擎喜爱,可以采用全站URL伪静态的办法。Apache环境参考文章《DedeCMS实现全站PHP伪静态》,笔者对IIS环境并不熟悉,找了一个小白教程分享给大家。

IIS服务器上安装urlrewrite模块

链接:http://pan.baidu.com/s/1b7lkHw 密码:d74v

安装过程很简单就不一一描述了。安装后可以看到”URL重写”

       在左侧找到需要重写的网站,单击该网站后,双击中间的“URL重写”。

       在弹出的窗口,选择右侧的“入站规则”下的“导入规则”,由于笔者已经导入过了,中间有显示,默认是空的。

       选择导入Apache配置 .htaccess 文件,适合像笔者对IIS环境不熟悉,对Apache熟悉的用户,当然你熟悉的正则表达式的话,就自己“添加规则”吧。就不一一介绍了,上面的下载地址有DedeCMS通用的伪静态规则,可以根据实际需要修改。

DedeCMS伪静态配置

       相关阅读《DedeCMS实现全站PHP伪静态》,注意规则上有些改动

文章、列表伪静态(/view-1.html、/list-1/)

       打开/include/helpers/channelunit.helper.php

//动态文章
if($cfg_rewrite == 'Y')
{
return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';
}

       替换为

//动态文章
if($cfg_rewrite == 'Y')
{
return "/view-".$aid.'.html';
}

       意思是:将默认的 /plus/view-1-1.html 文章链接格式改为 /view-1.html。继续查找

//动态
$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;

       替换为

//动态
$reurl = "/list-".$typeid."/";

      列表采用 /list-1/ 代表是目录,如果是/list-1.html代表是一个页面,权重更高。

列表分页伪静态(/list-1-2/)

        打开/include/arc.listview.class.php,找到

/**
 *  获取动态的分页列表
 *

       往下找到

$plist = str_replace('.php?tid=', '-', $plist);
$plist = str_replace('&TotalResult=', '-', $plist);
$plist = preg_replace("/&PageNo=(\d+)/i",'-\\1.html',$plist);

        修改

$plist = str_replace('/plus', '', $plist); 
$plist = str_replace('.php?tid=', '-', $plist);
$plist = str_replace('&TotalResult=', '-', $plist);
$plist = preg_replace("/&PageNo=(\d+)/i",'-\\1.html',$plist);
$plist = str_replace('.html','/' ,$plist); //by7

       如果不做处理的话,列表页的首页会有两个URL(/list-1/和/list-1-1/),这会分散权重,下面取消第一页分页修改方法。共有两处修改,找到

//获得上一页和下一页的链接
if($this->PageNo != 1)
{
 $prepage.="<a href='".$purl."PageNo=$prepagenum'><</a>";
 $indexpage="<a href='".$purl."PageNo=1'>首页</a>";
}
else
{
 $indexpage="<span>首页</span>";
}

       修改为

//获得上一页和下一页的链接 by7
$typedir= $GLOBALS['cfg_basehost'] . "/list-".$this->TypeID; 
if($this->PageNo != 1)
{
if($prepagenum==1)
{
$prepage.="<a href=\"".$typedir."/\"><</a>";
}
else
{
$prepage.="<a href='".$purl."PageNo=$prepagenum'><</a>";
}
$indexpage="<a href=\"".$typedir."\">首页</a>";
}
//by7

       往下找到

$listdd.="<a href='".$purl."PageNo=$j'>".$j."</a>";

       修改为

//by7
if($j==1)
{
$listdd.="<a href=\"".$typedir."/\">".$j."</a>";
}
else
{
$listdd.="<a href='".$purl."PageNo=$j'>".$j."</a>"; 
}
//by7

文章分页伪静态(/view-1-2.html)

       打开/include/arc.archives.class.php,找到

/**
  *  获得动态页面分页列表
  *

       继续往下找到

$PageList = preg_replace("#.php\?aid=(\d+)#i", '-\\1-1.html', $PageList);

修改为

$PageList = preg_replace("#.php\?aid=(\d+)#i", '-\\1.html', $PageList);

安装phpstudy,APMServ启动服务提示80端口被占用

        之前IIS服务器安装过Apache、php、mysql环境,但后期想用集成开发环境phpstudy的,安装完phpstudy后,启动服务时,总是显示80端口被占用,秀站网为大家总结两种解决办法。

方法一、修改注册表

        因为Apache当时安装时服务是自动开启的,每次开机都会显示Apache服务已经启动,需要手动退出Apache。

        在命令行输入netstat -aon可以查看80端口是被谁占用了。发现是被系统占用了,关闭不了。

1、打开运行输入,regedit 也就是打开笔记本的注册表

2、找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP

3、在右边找到Start这一项,将其改为0

4、重启系统,System进程不会占用80端口,也可通过netstat -aon查看,发现80端口确实已经不被占用了

5、最后一步,重启之后,再启动phpstudy就可以了。

方法二、修改端口常规设置

        phpstudy中可以修改Apache端口的地方是哪些,其中有三个地方可以直接修改Apache网站监听的端口。

1、phpstudy设置 -> 端口常规设置;

2、站点域名管理;

3、Apache目录 -> conf文件夹 -> httpd.conf文件。

        值得注意的是,只修改httpd.conf文件是不起作用的,必须修改其他两处中的一处,端口才能正确设置。打开方式如下图

        在端口常规设置中,http端口可以修改为8080端口,点击应用就好。

        回到启动界面,再次点击启动是不是成功了呢。

phpstudy开启Apache的Gzip压缩修正

Gzip是GNUzip的缩写,这个在站长工具或百度站长都有这个数据的评判,究竟有什么好处?

当服务器启用Gzip压缩功能之后,用户访问网站上是,服务器会对网页内容进行压缩,最终展示到用户的浏览器。可以压缩到70%甚至更高。

在IIS服务器里面用phpstudy搭建PHP、SQL、Apache方便快捷,但一些高级的设置,就没有服务器默认的IIS管理直观。比如Gzip的设置,下面笔者整理了phpstudy开启Gzip压缩功能。

建议大家不要再百度经验、知道等复制代码,许多平台对空格、回车的处理有问题,特别是用记事本修改,如果有多余的空格或回车,修改后直接提示503错误。

打开phpstudy集成环境操作面板 -> 其他选项菜单 -> 打开配置文件 -> httpd-conf

点击后一般是用的记事本打开,找到下面两个模块,两句代码不在同一行。

#LoadModule deflate_module modules/mod_deflate.so

#LoadModule headers_module modules/mod_headers.so

删除前面的“#”。在页面的最下面增加

<IfModule deflate_module>
SetOutputFilter DEFLATE
</IfModule>

保存,重启一下phpstudy,再用站长工具查看是不是已经提示开启了Gzip了。

如果觉得压缩比不够,可以调整,也不知道为什么大家建议只压缩.php、.txt、.html、.css、.js文件,而不把图片压缩呢?其实比较影响速度的是图片,不管怎么样,先看看其他设置怎么设置。

<IfModule deflate_module>
#必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩
SetOutputFilter DEFLATE

#压缩级别,1-9,9为最高
DeflateCompressionLevel 9

#不进行压缩的文件
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
#设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
#同上,就是设置不对exe,tgz,gz。。。的文件进行压缩
SetEnvIfNoCase Request_URI \.(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

#针对代理服务器的设置
Header append vary User-Agent
</IfModule>

linux可以试一下《万网虚拟主机开启gzip压缩》的方法。如果觉得图片打开速度太慢,就参考《七牛云空间防盗链设置防止采集流量攻击》,总之把页面打开速度控制在2秒左右,用户看着不累,搜索引擎会加权。

用APMServ在本地环境搭建多个网站

        网站建设中,除了PhpStudy还有APMServ等优秀的本地服务器搭建软件。使用方法比较简单,小白级别的也能快速掌握,是网站建设、SEO初学者”必备良药”。这两款软件不只是运行在本地,也能完美运行在IIS服务器,一个安装包搞定。

        PhpStudy和APMServ都能在本地建多个虚拟机,以满足多个网站的运行的需要,以APMServ为例介绍一下。先看看主要说明:

①APMServ程序所在路径不能含有汉字和空格。
②MySQL默认用户名:root,密码为空。(有些CMS在安装的时候不能让MySQL密码为空,自行添加即可)
③MySQL数据库文件存放目录:MySQL5.1\data或MySQL4.0\data
④网站根目录[HTML,PHP]www\htdocs [ASP]www\asp [CGI,Perl]www\cgi-bin
⑤访问本机请用http://127.0.0.1/或https://127.0.0.1/ (如果开启SSL)
⑥非默认端口,网址为http://127.0.0.1:端口/或https://127.0.0.1:端口/
⑦如果在“扩展功能”中选择使用Memcached,它的端口为:11211 

        了解的主要目录结构和程序之后就可以着手搭建网站了。软件请自行下载,版本好像没有更新,不过哪个版本都类似。

APMServ配置

        软件界面非常简单,不只是运行在2000/XP/2003,最新的Win10也可以,但是运行的时候一定要点击右键”用管理员身份运行”。《APMServ在64位win8win10启动失败》。

        打开的时候状态都是√Apache已启动。√MySQL5.1已启动。如上图,但是并不能立即使用,还需要安装的。点击”停止APMServ”,再点击”启动APMServ”,这个时候一般第一次安装相关服务器配置软件的同学能正常安装,但是使用过类似的软件的就会提示如下。

        这种情况一般是80端口被占用,解决办法阅读《安装phpstudy,apmServ启动服务提示80端口被占用》。

建立第一个网站

        在安装APMServ的目录下有一个www文件夹,建一个新文件夹如:demo。

        依次点击

Apache设置 -> 虚拟主机管理

        弹出来的窗口按照下面步骤:

填写虚拟主机域名 -> 网页文件根目录(可以点击后面的省略号) -> 保存此虚拟主机 -> 重启Apache使设置生效 ->退出

        回到软件主界面,点击”修改host文件”,秀站网觉得这个修改方法有点”二”,不过作者还是写了说明,照着改就是了。

        默认的就行了。刚才新建的文件夹是demo,填写如下,保存退出即可。

127.0.0.1 localhost demo

        在浏览器输入以下路径访问即可。

http://demo/

 

CSS去除display:inline-block的间距

很久没有写WEB前端的知识了,一个能力强的SEOer应该了解基本的WEB前端知识,一些简单的HTML代码是经常遇到的,细胞级代码优化才是一劳永逸的SEO方案。跟着秀站网学习快速建站,掌握骨灰级极简代码,让你的网站“飞”起来。

现在做网站基本上都是自适应了,秀站网也推荐大家用这种布局,不仅不会造成页面变复杂,反而能减少好多工作量。因为你写一套模板就行了,PC端移动端通过CSS自适应。

比如多个块级元素横向排列时会用float浮动布局,想实现这些元素居中就比较麻烦了,这里介绍display的用法。

display有三种属性:inline、block、inline-block

inline和block分别是把块级元素变成行内元素,行内元素变成块级元素;而inline-block是结合了块级元素和行内元素的一些特点。块级元素会占用一行,想实现块级元素横向布局,一般用浮动或者用display:inline属性。

行内元素有很多局限性,不能使用width、height、margin等,想使用的话就可以用display:inline-block。大家会发现此时块级元素之间会有4个像素的间隙,去掉这个间隙需要在父级元素增加font-size:0,兼容所有浏览器,举例:

<p class="father">
    <p class="son"></p>
    <p class="son"></p>
    <p class="son"></p>
</p>
<style>
.father{font-size:0}
.son{display:inline-block;padding:0 3px;margin:0 3px;font-size:14px;}
</style>

ie6/ie7要处理一下

行内元素直接使用{dislplay:inline-block;}
块级元素:需添加{display:inline;zoom:1;}

一般文字图片混排用inline-block,如果页面整体布局就用float,用伪类after、before清除浮动即可,如

<p class="father clear">
    <p class="son"></p>
    <p class="son"></p>
    <p class="son"></p>
</p>
<style>
.son{float:left}
.clear:after{clear:both}
</style>

阿里云RDS云数据库与DedeCMS本地数据库替换

最近做一个项目,为保证服务器、数据的安全及访问速度,运用到阿里云RDS云数据库、七牛云、DedeCMS织梦等内容,目前网络上这么多的整合的内容还是比较少,这里秀站网为大家总结了部分知识点。关于七牛与DedeCMS整合,参考文章

  • DedeCMS集成百度编辑器七牛完美修正版

阿里云ECS在本地搭建Apache+SQL数据库是我们用的比较多的WEB服务器构建方式,可以用IIS或者用PHPStudy来做,建议初学者用PHPStudy。下面结合RDS云数据库和DedeCMS本地数据库替换步骤。

RDS云数据库搭建

↑新创建一个RDS

↑选择按量付费

笔者是用作测试的,根据自己需要选即可,就会得到主机名(公网和内网)、账户和密码,如果你的ESC和RDS是一个账号、区域,建议用内网链接,不会产生流量费。下面用到的工具是Navicat,这是一个直观化的数据库管理工具。

数据库链接

↑新建数据库连接

↑输入主机名、用户名及密码,并点击测试连接,链接成功

数据表同步

↑本地的数据库和新链接的数据库进行复制

↑左侧本地数据库,右侧为RDS数据库,点击开始即可。

DedeCMS数据库链接更改

打开根目录下的/data/common.inc.php,依次修改主机名、数据库名、用户名、密码

保存后试一下是不是能正常访问了呢,至此RDS和本地数据库更换全部结束,如果有什么不明白的地方可以咨询我。

Win7局域网共享不输入用户名密码权限设置

在局域网内文件夹共享可以减少很多不必要的资源浪费,一些比较大型的机构可以把内容统一放到局域网服务器,以提高工作效率。

虽然微软主推Win10,但是Win7用户还是不愿意更换。在办公室有一些财务、视频软件是破解版或二次开发,对Win10的支持欠佳。秀站网用的都是Win10,这个会自动更新,而且用了网上说的一些方法也不能阻止Win10的更新。

干脆还是用较稳定的Win7吧,在Win7在安全策略上比XP增强很多,比如在局域网内访问对方文件夹需要输入账户名和密码,有时候连对方都没有设置密码也弹出来,在使用的过程中非常不方便。下面分享设置方法。

打开控制面板 -> 网络和共享中心 -> 高级共享设置 -> (在所在工作组找到)关闭密码保护共享 -> (公用组)关闭密码保护

有些朋友说要开启游客guest账户,其实不必,开启了也没有用,继续往下看。

在所要共享的文件夹右键 -> 属性 -> 共享选项 -> 网络文件和文件夹共享 -> 共享(s)… 

弹出对话框看有没有everyone的用户,如果没有,在向下箭头选择后点击添加。

点击共享后,要等待一下,弹出提示您的文件夹已共享,点击完成。

这个时候试着用其他电脑访问,提示仍需要键入用户名和密码,其实还是everyone的权限没有完全获得。这是Win7的安全策略的问题,继续在

文件夹右键属性 -> 安全选项 -> 编辑 -> 点击添加

 

 

点击立即查找,在底部找到Everyone,点击确定,再次点击确定

根据需要可以选择完全控制,点击确定即可。如果只是读取就不要勾选这个选项。

这样Win7的文件夹共享完成,另外分享一个bat命令,不用在网络里面查找。记录目标局域网的电脑的IP,如:192.168.1.233,新建一个文本文件,输入以下

start\\192.168.1.233

把文件重命名为 共享.bat,直接点击这个bat文件即可。

腾讯优酷视频分享iframe,embed高度多种比例控制

        在做页面优化的时候,可以采用多种表现形式增加用户体验,如图片描述、文字说明、GIF动图、Flash、必要的锚文本、音频、视频等。虽然搜索引擎对图片、Flash、音视频都无法识别,但从用户角度看,用户会认为这个页面质量非常高,停留时间也会长得多。

        如果你的服务器对图片、视频等多媒体支持不佳,造成页面打开速度慢,影响用户体验的话,可以把附件放在7牛云、百度云等云平台,这些平台能提高网站加载、访问速度。

        如果是引用其他平台的视频内容,就比较麻烦了。比如腾讯视频、优酷视频、新浪视频等,这些平台的时候都有广告,用指定的下载器下载下来文件只能用指定的播放器打开,有些还不能直接用格式工厂转码,确实比较影响用户体验。

        如果是专门的视频站,可研究一下CKplayer,可以去广告。如果只是把视频要求并不高的网站,可以直接用这些平台的分享功能,一般有两种形式:

iframe 元素会创建包含另外一个文档的内联框架(即行内框架)
embed 标签定义嵌入的内容,比如插件
iframe 支持所有浏览器,embed是HTML5新标签支持IE9以上和主流浏览器

        秀站网测试过在移动端的引用的是没有广告的,在移动端用户日益强大的今天,是非常值得做的哦。

        但是这两个标签引用的内容视频高度都不能自适应,网上有多种方法解决,下面是整理的最简单最实用的方法,支持4:3比率和16:9比率的,当然你可以根据自己的需要自己调整就好。

        用的是JS的方法,代码如下:

<iframe allowfullscreen="" frameborder="0" height="400" id="movie_16_9"  src="https://v.qq.com/iframe/player.html?vid=r0372rfy8y4&amp;tiny=0&amp;auto=0" width="100%"></iframe>
<iframe allowfullscreen="" frameborder="0" height="400" id="movie_4_3"  src="https://v.qq.com/iframe/player.html?vid=r0372rfy8y4&amp;tiny=0&amp;auto=0" width="100%"></iframe>
<script type="text/javascript">
 document.getElementById("movie_16_9").style.height=document.getElementById("movie_16_9").scrollWidth*0.5625+"px";//16:9
 document.getElementById("movie_4_3").style.height=document.getElementById("movie_4_3").scrollWidth*0.75+"px";//4:3 
</script> 

        注意上面的红色部分,0.5625这个值是9&pide;16的结果,0.75这是值是3&pide;4的结果。如果你想设置成其他的,自行修改就行了。