Category Archives: Web Techs

301 permanent redirection through IIS7.0 URL Rewrite module

The Microsoft URL Rewrite Module 2.0 for IIS 7 enables IIS administrators to create powerful customized rules to map request URLs to friendly URLs that are easier for users to remember and easier for search engines to find. You can use the URL Rewrite module to perform URL manipulation tasks, some of which include:

  • Define powerful rules to transform complex URLs into simple and consistent Web addresses.
  • Easily replace Web application URLs to produce user and search engine friendly results.
  • Rewrite URLs based on HTTP headers and IIS server variables.
  • Perform redirects, send custom responses, or stop HTTP requests based on the logic expressed in the rewrite rules.
  • Control access to Web site content based on URL segments or request metadata.

If your website is on server windows2008 / IIS7.0 then you can easily create a web.config file with 301 redirection rules to set 301 permanent redirection for your website.

To redirect your website to another one,for example,your website is www.example.com and you want to redirect it to www.jayhuang.com then please add the code below in your web.config file between the tags ‘<system.webServer>’ and ‘</system.webServer>’:

<rewrite>
<rule name=”Canonical Host Name” stopProcessing=”true”>
<match url=”(.*)” />
<conditions>
<add input=”{HTTP_HOST}” negate=”true” pattern=”^www\.example\.com$” />
</conditions>
<action type=”Redirect” url=”https://www.jayhuang.com/{R:1}” redirectType=”Permanent” />
</rule>
</rewrite>

To redirect to address that’s with WWW,like from jayhuang.com to www.jayhuang.com,you’ll use the web.config file like below:

<?xml version=”1.0″ encoding=”UTF-8″?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name=”WWW Redirect” patternSyntax=”ECMAScript” stopProcessing=”true”>
<match url=”(.*)” />
<conditions logicalGrouping=”MatchAny”>
<add input=”{HTTP_HOST}” pattern=”^jayhuang\.com” />
</conditions>
<action type=”Redirect” url=”http://www.{C:0}” />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Rule Pattern

A rule pattern is used to specify what the rule input string should be matched to. Rule input differs based on the rule configuration:

  • If rule uses tag filters then the content of the matched tag attributed will be passed as an input for the pattern matching.
  • If rule does not use any tag filters then the entire response content will be passed as an input for the pattern matching.

Pattern is specified within a <match> element of a rewrite rule.

Rule pattern syntax

Rule pattern syntax can be specified by using the patternSyntax attribute of a rule. This attribute can be set to one of the following options:

ECMAScript – Perl compatible (ECMAScript standard compliant) regular expression syntax. This is a default option for any rule. This is an example of the pattern format: ”^([_0-9a-zA-Z-]+/)?(wp-.*)”

WildcardWildcard syntax used in IIS 7.0 HTTP redirection module. This is an example of pattern in this format: “/Scripts/*.js”, where asterisk (“*”) means “match any number of any characters and capture them in a back-reference”. Note that wildcard pattern type cannot be used when rule does not have any tag filters.

ExactMatch – exact string search is performed within the input string.

The scope of the patternSyntax attribute is per rule, meaning that it applies to the current rule’s pattern and to all patterns used within conditions of that rule.

Rule pattern properties

Pattern can be negated by using the negate attribute of the <match> element. When this attribute is used then the rule action will be performed only if the input string does NOT match the specified pattern.

By default, case insensitive pattern match is used. To enable case sensitivity you can use the ignoreCase attribute of the <match> element of the rule.

Rule conditions

Rule conditions allow defining additional logic for rule evaluation, which can be based on inputs other than just a current input string. Any rule can have zero or more conditions. Rule conditions are evaluated after the rule pattern match is successful.

Conditions are defined within a <conditions> collection of a rewrite rule. This collection has an attribute called logicalGrouping that controls how conditions are evaluated. If a rule has conditions, then the rule action will be performed only if rule pattern is matched and:

  • All conditions were evaluated to true, provided that logicalGrouping=“MatchAll” was used.
  • At least one of the conditions was evaluated to true, provided that logicalGrouping=”MatchAny” was used.

A condition is defined by specifying the following properties:

  • Input string – Condition input specifies which item to use as an input for the condition evaluation. Condition input is an arbitrary string that can include server variables and back-references to prior condition patterns and/or to rule patterns.
  • Pattern –  A pattern to look for in the condition input. A pattern can be specified by using either regular expression syntax or by using wildcard syntax. The type of pattern to use in a condition depends on the value of the patternSyntax flag defined for the rule to which this condition belongs. This condition type has two related attributes that control pattern matching:

Rule action

A rewrite rule action is performed when the input string matches the rule pattern and the condition evaluation has succeeded ( depending on rule configuration, either all conditions matched or any one or more of the conditions matched). There are two types of actions available and the “type” attribute of the <action> configuration element can be used to specify which action the rule has to perform. The following sections describe different action types and the configuration options related to specific action types.

给网站添加QQ在线聊天链接

我们很多人都在用QQ,正式因为这样有很多的商业网站通过QQ来提供在线客服或咨询服务,也有个人网站或博客之类的添加QQ来放便网站访问者与自己交流。那么你是否也考虑过在你的网站上添加QQ在线聊天的链接了?其实在网站上添加QQ在线聊链接是很简单的,下面就简单介绍一下如何给网站添加QQ在线聊天链接:

首先打开这个链接http://wp.qq.com/,然后登录你的QQ,登录之后你就能看到生成QQ在线代码的页面了。在那里你可以选择在线状态风格,也可以设置会话权限,最后复制代码贴到你网站上就大功告成了。

在那个页面生成的代码是经过加密的,看上去和下面这种类似:

<a href=”http://sighttp.qq.com/cgi-bin/check?sigkey=d0ca6567c156615b7332b5ed1230bbcf8c3f851c5e83a63221ccac8bcf570a94″; target=_blank; onclick=”var tempSrc=’http://sighttp.qq.com/wpa.js?rantime=’+Math.random()+’&sigkey=d0ca6567c156615b7332b5ed1230bbcf8c3f851c5e83a63221ccac8bcf570a94′;var oldscript=document.getElementById(‘testJs’);var newscript=document.createElement(‘script’);newscript.setAttribute(‘type’,’text/javascript’); newscript.setAttribute(‘id’, ‘testJs’);newscript.setAttribute(‘src’,tempSrc);if(oldscript == null){document.body.appendChild(newscript);}else{oldscript.parentNode.replaceChild(newscript, oldscript);}return false;”><img border=”0″ SRC=’http://wpa.qq.com/pa?p=1:你的QQ号:41′ alt=”和我聊天”></a>

各参数的解释

1)、sigkey为个人鉴权key,请勿修改,否则无法发起临时会话。

2)、临时会话图标<img border=”0″ SRC=’http://wpa.qq.com/pa?p=1:你的QQ号:1′ alt=”点击这里给我发消息”> SRC是图标链接,自定义图标中可以替换这一部分为自己图片的链接,

P=以冒号“:”分隔多个参数
第一个参数为版本号,目前为1;
第二个为QQ/TM号码;
第三个参数为图像风格,支持多种状态。
alt是图标旁留言。

3)、除了自定义图标需要修改临时会话图标外,其他情况下建议不要修改代码,因为有可能导致在不同的环境和浏览器下,无法发起临时会话。

不过也可以用其他样式的代码,下面这个是很常用的一种,代码简短,但是有个缺陷就是当别人点击QQ链接后往往会提示用户升级QQ,然后才能用。建议用上面的那种,虽然代码长了点,但是不会有这种问题。

<a target=blank href=tencent://message/?uin=你的QQ号&Site=你的网址&Menu=yes><img border=”0″ SRC=http://wpa.qq.com/pa?p=1:你的QQ号:1 alt=”点击这里给我发消息”></a>

下面这张图是一些QQ在线风格,前面的是序号,选用不同风格改掉序号即可。比如“p=1:你的QQ号:41”,风格是41,你可以换成1,2,3等等。

QQ在线状态风格及对应的序号

如何在网站集成支付宝、Paypal及时到帐交易?

支付宝最近收到很多邮件,询问如何集成支付宝和paypal到网站中,而这些咨询的朋友又是比较熟悉php编程的,所以我不妨写一篇日志简单减少集成的流程:

  1. 支付宝请首先购买商家服务,否则没有API使用,同理paypal请升级为商家用户;
  2. 创建一个支付记录的数据表,表里面应该至少包含1. 交易ID 2.交易日期 3. 交易金额 4.此笔交易所有者的帐号,其他信息;
  3. 创建交易链接,创建链接包含交易金额,同时包含服务器通知链接*(后面有解释),便于服务器将交易状态通知到该程序。
  4. 编写通知链接指向的那个文件,接收交易平台发过来的通知,如果确定交易成功,则返回一个“成功”的标志给服务器,以免服务器重复发送。同时将交易 数据更新到第二步创建的数据表中,供今后使用;
  5. 至此,每个用户的当前余额就可以在交易记录中提取了,有了数据,后面如何扣款,那自然是很简单的事情了。

Paypal Logo服务器通知链 接*:一旦发起了交易,只要在支付宝或者是paypal创建成功,那么支付平台的服务器就会向你指定的这个链接发送通知。然后便可以根 据发送过来的内容判断交易状态。当然,这个程序同时也要给交易平台一个应答,否则交易平台无法判断通知是否被接受到,如果无法判断通知被接受到,交易平台 服务器会不断的发送通知,当然发送会有时间间隔的,这个时间间隔会不断的增大。

几点注意事项:

  1. 支付宝的通知链接是不能有任何get参数的,比如 http://homzz.com/ali_notify.php?userid=100 这样是永远不可能成功的,所以要判断交易与哪个用户相关,必须在第二步,将交易ID和交易所有者关联好,到时候根据支付宝的通知返回的交易ID来判断交易 的所属;
  2. paypal没有get参数限制,然而paypal的交易ID是不可以预设的,因此,我们可以动态创建通知返回链接如 http://homzz.com/ali_notify.php?userid=100,那么这笔交易产生之后,paypal就只会向这个指定的 link发送通知;
  3. 接收到一个通知之后,请向paypal或者alipay返回成功标志,以免重复通知;
  4. 由于有时候程序故障,或者第三方支付平台也会故障,或者是网络故障,导致返回的“成功”标志没有被支付平台服务器识别,所以在第四步的时候,要考 虑重复通知问题,也就是说,即使重复通知了,数据库也不要产生多次插入操作,防止凭空出现无用的交易。

原文出处:http://www.storyday.com/html/y2010/2642_a-few-words-on-how-to-integrate-the-site-alipay-arrive-in-time-or-paypal-transactions.html

How to create wordpress themes

You may think it’s hard to create a wordpress theme by yourself. You may want to create a theme but don’t know where to start. If you’re looking for such stuff then you came to the right place.

Recently I found a blog site that’s displaying step-by-step tutorials on creating wordpress themes.

If you would like to learn how to create a unique wordpress themes, please just check out this page (click here) and I believe you’ll be able to create wordpress themes after you read all articles on that site.

WordPress博客页面优化之技巧

WordPress是非常不错的博客程序,也是很多博客爱好者所喜欢的建站程序之一。下面就来说说wordpress的SEO优化技巧:

1 安装SEO插件

wordpress有非常多的插件可以供我们使用,几乎你想得到的功能都可以通过插件来实现,其中也包括SEO插件。我们要做的第一件事就是给WordPress安装SEO插件,在搜索引擎优化方面它基本上给我们解决了80%左右的问题!至于如何安装插件,请“百度一下”或者是“google一下”。

2 keywords和description要充实起来

keywords和description无论对于什么类型的网站都是十分的重要,这是搜索引擎第一眼看到的内容,也可以说是你网站的门面,关系着你整个网站的主旨所在。虽然有这部分的写作对搜索引擎排名的影响越来越小了,但这并不是说这部分写作没有作用;如果有条件和时间的话,还是应该尽量把keywords和description很好的填充起来。

3 博客标题格式书写要合理

Title就是一般显示在浏览器标题栏的文字,有些wordpress模版中的标题格式是 “Blog标题 >> 文章标题” 的格式,不建议使用这种格式;建议采用“文章标题 – Blog标题”的形式。除此之外,尽量在title里面出现文章的关键词。

4 标题中要有网站主旨相关的关键词

这点在上面也提到过,文章的标题对于SEO来说,它是搜索引擎首要接触到的内容,也是整篇文章之精华总结。所以,在写文章标题的时候,把相关网站相关的关键词放进去,十分的有必要。例如:有一篇关于Webhost4life的文章“如何使用优惠码最省钱”,这里最好把Webhost4life也放到标题中去,改成“如何使用Webhost4life优惠码最省钱”或者“Webhost4life主机优惠码如何使用最省钱”;这样对于搜索引擎来说,它就能很快很好的识别出文章的内容,进而对你排名有所影响。

5 文章段落的开头最好能加入关键词

上面说了文章的标题,接下来就是文章段落的开头部分了。段落的开头部分是整篇文章思想之所在,文章的开头竟可能的加入关键词,加入的词语不要太过于生硬,这里加入的关键词要合理,不要过多的加入关键词,这样很容易造成关键词堆砌,只会得到“适得其反”的效果。

6 为博客文章添加tag属性

Tag属性很多博主都不怎么在意,感觉无所谓,如果这样想的话那你就大错特错了。TAG可以增加用户的体验度,而且,搜索引擎在抓取内容时候,也会对相关Tag关键词予以重视。写博客文章的时候,要尽可能的为博客添加tag属性的关键词。

7 页面的URL中最好能有关键词

博客中使用的URL地址格式都是自定义的格式,所以在自定义URL地址时,尽可能的把URL地址唯一化,不然会造成复制内容而影响搜索引擎结果排名;无论是设置成拼音或者英文都是可以的,这个看个人的爱好了啊,英文站最好是设置成带关键字的英文地址,对于网站的优化很有帮助的。

WordPress里有个URL设置就是永久链接,使用这个链接需要你的服务器支持rewrite功能(也就是我们常说的伪静态开启),使用这个链接确认文章标题使用了永久链接,那么你可以自己设置页面名称了。

8 图片alt属性

页面中的图片,也竟可能的把图片加上相应alt属性的信息,并且确认这些标记和显示的内容匹配,这会帮助搜索引擎更好的知道图片的内容。当然,你也可以在alt里面加上几个关键词,但不要太多,那样就是堆积了,是作弊,要被K站的。

ASP数据库调用语句

ASP调用SQL Server、Access数据库代码,供大家参考:

1、ASP连接调用SQL Server数据库的代码:

Strconn=”provider=sqloledb;datasource=数据库服务器地址;uid=数据库用户名;pwd=数据库密码;datebase=数据库名”
setconn=server.createobject(“adodb.connection”)
conn.open strconn

如果数据库与网站空间在同一台服务器上,建议data source地址使用127.0.0.1或(local)或者请参考一下代码:

dim titlename
dim Strconn
titlename=”数据库连接测试”
Dim Conn,ConnStr,DataServer,DataBase,DataUser,DataPass
DataServer = “数据库服务器地址”
DataBase = “数据库名”
DataUser = “数据库用户名”
DataPass = “数据库密码”
ConnStr=”Provider=SQLOLEDB.1;User ID=”&DataUser&”;Password=”&DataPass&”;Initial
Catalog=”&DataBase&”;Data Source=”&DataServer&””
Set Conn=Server.CreateObject(“ADODb.Connection”)
Conn.ConnectionString=ConnStr
Conn.Open

2、在ASP中连接调用Access数据库代码:

Set conn=Server.CreateObject(“ADODB.Connection”)
conn.open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & server.mappath(“/db/data.mdb”)

请您将”/db/data.mdb”替换为您自己的Access数据库实际路径。

为Discuz论坛启用Flash代码

Discuz是国内的一款非常流行的论坛程序,下面介绍的是如何为Disuz论坛开启Flash代码,以便论坛用户能够在贴子中插入Flash文件。

  1. 首先登陆Discuz后台,然后到 界面 > 编辑器设置 > Discuz! 代码 > flash 勾选 “显示”和“可用“。
  2. 再在版块下面找到你要编辑的版块,然后打开 编辑 > 帖子选项中, 允许使用 Discuz! 代码: 选择 是。
  3. 最后到 用户 > 用户组 >详情 中允许该用户组使用discuz代码

相关文章:

SQL语句开启Discuz论坛media

为Discuz论坛各版快开启media代码的SQL语句:

UPDATE `cdb_forums` SET `allowmediacode` = '1'

为Discuz论坛各版块关闭media代码的SQL语句:

UPDATE `cdb_forums` SET `allowmediacode` = '0'

如何执行SQL语句:

首先登录discuz后台, 然好到 工具 > 数据库 > 升级
输入SQL语句然后提交。如图:

执行SQL语句