存档

‘编程实践’ 分类的存档

可以显示进度的cp命令(shell代码)

2016年2月27日 没有评论

首先将如下脚本放置在/usr/bin下,
要使用cp指令時,以大写CP指令,代替小写cp. (当然你可以自己修改脚本定制适合自己的命令)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
 
PARAM_LIST=$*
PARAM_NUM=$#
TOTAL_SIZE=0
for((i = 0; i < PARAM_NUM - 1; i++))
do
        [ ! -r $1 ] && echo "Cannot read $1." && exit 1
        SIZE=`du -s $1 | awk '{print $1}'`
        ((TOTAL_SIZE = TOTAL_SIZE + SIZE))
        shift
done
TARGET=$1
START_TIME=`date +%s.%N`
cp -a $PARAM_LIST &
echo -ne "Total size: $TOTAL_SIZE KB - %"
while true
do
        LEN_PERCENT=${#PERCENT}
        for((i = 0; i <= LEN_PERCENT; i++))
        do
                echo -ne "\b"
        done
        COPIED=`du -s $TARGET | awk '{print $1}'`
        ((PERCENT = COPIED * 100 / TOTAL_SIZE))
        echo -ne "$PERCENT%"
        ((PERCENT == 100)) && END_TIME=`date +%s.%N` && break
done
MB_SECOND=`echo $TOTAL_SIZE/1024/\($END_TIME-$START_TIME\)|bc`
echo " - SPEED: $MB_SECOND MB/s"

1秒破解 js packer 加密

2016年2月11日 没有评论

看了篇对js加密解密的方法,转了别人的文章,希望对浏览器大家编程的实现原理有一定的帮助。

eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,'g’),k[c]);return p;}(‘(1(){1 4(0){6(0){2 0};2 5};7 3=4();8(3)})();’,9,9,’a|function|return|ret|test|123|if|var|alert’.split(‘|’),0,{}))
类似这样一段代码,高手见了笑而不语,熟悉js的朋友嗤之以鼻,js新人却茫然了,去各种群里问怎么解密。
我教你 1 秒解密 packer加密过的js (应该叫压缩更合适)。

打开谷歌或者火狐浏览器,然后按 F12,接着把这代码复制进去,
最后,去掉开头 4 个字母 eval 然后回车运行下就得到源码了。

chrome

firefox

格式化得到的源码后即可得到:(在线代码格式化 http://jsbeautifier.org/)

(function (){
function test(a) {
if (a) {
return a;
}
return 123;
}

var ret = test();
alert(ret);
})();
是不是 so easy ?

当然不是所有乱七八糟的代码都是这样解密的,用这个方法解密有一个特征。
eval 包裹着函数或者其他语句的密文都可以这样做,最常见的就是 packer压缩 了。

packer压缩 的特征是 eval(function(p,a,c,k,e,d) 或者 eval(function(p,a,c,k,e,r) 开头是这些的,用此方法1秒还原。

packer 谷歌翻译:打包机
packed 谷歌翻译:打包 (应该是 “已打包” 的意思)

很明显都不是什么加密,只是早前的一些打包算法而已,现在不推荐使用,效率不高不说,还没有任何安全性。
JS混淆加密压缩 http://tool.chinaz.com/js.aspx
这是站在工具提供的打包,混淆工具。感兴趣的朋友自己去测试下吧。

可能有朋友会说,明明比源码多,怎么能说这是压缩呢?
其实分析下他的算法就会发现,其实他是提取相同字符进行压缩的,所以相同单词越多,压缩率越大,来看个例子:

(function () {
var aaaaaaaaa=1;
aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;
return aaaaaaaaa;
})();
压缩后:

eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,'g’),k[c]);return p;}(‘(3(){2 0=1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;4 0})();’,5,5,’aaaaaaaaa||var|function|return’.split(‘|’),0,{}))
很明显变量aaaaaaaaa被替换成了0,这样就起到了压缩功能,所以用他压缩的前提是重复单词非常多的情况。

比较好的习惯是用 Google Closure,Uglifyjs,YUI Compressor 等工具进行打包压缩(我觉得应该叫编译更为恰当)。
这些工具打包压缩后的代码,优化了语句,把局部变量重命名为 a,b,c 这样的变量,所以大幅度的减小了代码容量。

比如:

(function (){
function test(text) {
if (text) {
return text;
}
return ‘hehe’;
}

var ret = test();
alert(ret);
})();
用 UglifyJS 编译后:

!function(){function a(a){return a?a:”hehe”}var b=a();alert(b)}();
不仅变量变成了 a,b 而且 if 语句也发生了变化,所以叫做编译更贴切。

再来试试刚才那段全是 aaaaa 的代码,用 UglifyJS 编译后就变成一行了:

!function(){var a=1;return a}();
是不是很神奇啊,大量的优化了垃圾代码。

著名的 jQuery 就是用 UglifyJS 编译的,也许你会说不是 grunt 构建的么,是的,但是编译器用的就是 UglifyJS。

分类: 编程实践 标签: , ,

SQL Server 2008 R2 企业版/开发版/标准版(中英文下载,带序列号)

2015年12月21日 没有评论

SQL Server 2008 R2 企业版/开发版/标准版(中英文下载,带序列号)

说明:此激活版仅用于测试,如用于商用生产环境,产生的一切后果自负。

一. 简体中文

1. SQL Server 2008 R2 Developer (x86, x64, ia64) – DVD (Chinese-Simplified)

File Name: cn_sql_server_2008_r2_developer_x86_x64_ia64_dvd_522724.iso
Date Published (UTC): 2010-5-3 9:45:45        ISO/CRC: ADDBE07E
SHA1: AAE0E2D4E41AB7591634D53C7BC76A112F31B617
File Size: 4.34 GB

ed2k://|file|cn_sql_server_2008_r2_developer_x86_x64_ia64_dvd_522724.iso|4662884352|E436F05BCB0165FDF7E5E61862AB6BE1|/

2. SQL Server 2008 R2 Enterprise (x86, x64, ia64) – DVD (Chinese-Simplified)

File Name: cn_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_522233.iso
Date Published (UTC): 2010-5-3 9:45:05        ISO/CRC: 55AC3C56
SHA1: 0EEFF017B21635DF33F33C47E31E911CB23390F7
File Size: 4.34 GB

ed2k://|file|cn_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_522233.iso|4662884352|1DB025218B01B48C6B76D6D88630F541|/

3. SQL Server 2008 R2 Standard (x86, x64, ia64) – DVD (Chinese-Simplified)

File Name: cn_sql_server_2008_r2_standard_x86_x64_ia64_dvd_522239.iso
Date Published (UTC): 2010-5-3 9:45:18        ISO/CRC: F6137D11
SHA1: B5A534094780CD915458344BD097F8203FD7C7CC
File Size: 4.34 GB

ed2k://|file|cn_sql_server_2008_r2_standard_x86_x64_ia64_dvd_522239.iso|4662884352|18EB3AE3828811617488F2CE8E5B8420|/

二. 英文(US)

1. SQL Server 2008 R2 Developer (x86, x64, ia64) – DVD (English)

File Name: en_sql_server_2008_r2_developer_x86_x64_ia64_dvd_522665.iso
Date Published (UTC): 2010-5-3 9:45:43        ISO/CRC: 272D2E95
SHA1: 10B990A86961D84C4D7D5E8C3A4C67F0D0456E63
File Size: 4.08 GB

ed2k://|file|en_sql_server_2008_r2_developer_x86_x64_ia64_dvd_522665.iso|4380329984|D50121522B34BBE91564F51D167BAAB5|/

2. SQL Server 2008 R2 Enterprise (x86, x64, ia64) – DVD (English)

File Name: en_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_520517.iso
Date Published (UTC): 2010-5-3 9:45:03        ISO/CRC: 1139BB30
SHA1: 18105DB70F0F0B23418F5005A6CE4B25317C6D03
File Size: 4.08 GB

ed2k://|file|en_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_520517.iso|4380329984|311E5E62E84E07A1460312674EB158A7|/

3. SQL Server 2008 R2 Standard (x86, x64, ia64) – DVD (English)

File Name: en_sql_server_2008_r2_standard_x86_x64_ia64_dvd_521546.iso
Date Published (UTC): 2010-5-3 9:45:17        ISO/CRC: ECDBE122
SHA1: 09CF52A4209CA96FF480537BB86786F79AE0E8A3
File Size: 4.08 GB

ed2k://|file|en_sql_server_2008_r2_standard_x86_x64_ia64_dvd_521546.iso|4380329984|9554A2B17DE29ABF4743912535BC4B46|/

MS 发布了最新的SQL  Server 2008 R2,似乎早在4.19就提供了下载,不过才到昨天放出下载地址:
这个是试用版的下载,于正式版的区别就只在一个序列号!
MSDN的版本则集成了安装序列号(类似VS2010),如果有大大下载了MSDN SQL 2008 R2,期待放出其中的序列号!

这是官方的下载页面(需要付费订阅):
http://msdn.microsoft.com/zh-cn/subscriptions/downloads/default.aspx

数据中心版:
PTTFM-X467G-P7RH2-3Q6CG-4DMYB(可用,已验证)
DDT3B-8W62X-P9JD6-8MX7M-HWK38(待测)

开发版:
MC46H-JQR3C-2JRHY-XYRKY-QWPVM (可用,已验证)
FTMGC-B2J97-PJ4QG-V84YB-MTXX8(待测)

企业版:
R88PF-GMCFT-KM2KR-4R7GB-43K4B (可用,已验证)
GYF3T-H2V88-GRPPH-HWRJP-QRTYB(待测)

标准版:
B68Q6-KK2R7-89WGB-6Q9KR-QHFDW(待测)
CXTFT-74V4Y-9D48T-2DMFW-TX7CY(待测)

工组版:
XQ4CB-VK9P3-4WYYH-4HQX3-K2R6Q(待测)

WEB版:
FP4P7-YKG22-WGRVK-MKGMX-V9MTM(待测)

希望大家有序列号不吝提供!

至于MSDN版本则含了对应的序列号

SQL Server 2008 R2 Enterprise (x86, x64, ia64) – DVD (Chinese-Simplified)语言:中文(简体)
文件名:cn_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_522233.iso
邮寄日期(UTC):2010-5-3 9:45:05文件大小:4662884352 字节
SHA1:0EEFF017B21635DF33F33C47E31E911CB23390F7

下载地址:cn_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_522233.iso (4.34 GB)

分类: 编程实践 标签:

一段代码让wordpress博客自动添加关键词(keywords)及网页描述(description)

2015年9月17日 没有评论

让wordpress博客自动为每篇文章自动关键字及网页描述。每篇文章的内容不同,我们该如何让wordpress自动添加文章描述和关键词呢?办法很简单,我们只需要在模板头部添加如下一段PHP代码。
今天桃子empress在博客留言板中说:“怎么在sinaapp engine 使用的的wordpress添加关键词和描述!”其实笔者之前接触过sinaapp,但是没深入过,既然是wordpress博客,应该是一样的办法!
sinaapp好像不支持FTP。那没关系,你直接在后台管理中找到主题–编辑–header.php。
打开你的模板文件header.php,在最前面添加如下PHP代码: (也可以不用在最前面,懂PHP代码可以随意摆放适宜的位置,,不懂的话就先遵照这样做吧!)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
//判断是否为首页
if ( is_home ())
{
$description = "这里填写博客首页的描述,最多220字符";
$keywords = "这里填写首页关键词,用英文逗号隔开";
//判断是否为文章页
}
else if ( is_single ())
{
if ( $post->post_excerpt)
{
$description = $post->post_excerpt;
} else {
$description = mb_strimwidth(strip_tags(apply_filters('the_content',$post->post_content)
),0,220);
}
$keywords = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords.$tag->name.","; }
//判断是否为分类页
} else if ( is_category()) {
$description = category_description();
}
?>

添加完上面的代码,然后查找标签:

1
</title>

在后面加入

1
2
3
<meta name = "keywords" content="<?php echo $keywords; ?>" />
<meta name= "description" content="<?php echo $description; ?> "/ >
这两句代码位置也非绝对的,如果你不领会的话,就放在</title>标签后边就可以了!

好了,然后去刷新你的首页和其他文章页面吧,查看源代码。是不是就和上图一样了呢!
这样就为wordpress所有的文章加上关键字和网页描述了。如果你之前没有为文章添加标签的话,关键字是没有的哦!

分类: 编程实践 标签:

WordPress为关键字自动添加链接

2013年6月2日 没有评论

锚文本链接在网站优化中有很重要的作用,WoredPress可通过添加函数设置特定关键字自动添加链接。

1
2
3
4
5
6
7
8
9
function replace_text_wps($text){
$replace = array(
 'VPS12.com' =&gt; '<a href="http://www.vps12.com/" rel="home">VPS12.com</a>',
 'VPS' =&gt; '<a href="http://www.vps12.com/" rel="home">VPS12.com</a>'
 );
$text = str_replace(array_keys($replace), $replace, $text);
 return $text;
}
add_filter('the_content', 'replace_text_wps');

使用htaccess实现域名跳转

2013年3月31日 没有评论

要使用域名的统一,即使得vps12.com转向www.vps12.com,有很多办法,听说对于seo也有些好处!

1
2
3
RewriteEngine on
RewriteCond %{HTTP_HOST} ^vps12.com [NC]
RewriteRule ^(.*)$ http://www.vps12.com/$1 [L,R=301]

还可以利用重定向功能实现url的跳转,例如:

1
2
3
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.abc.com [NC]
RewriteRule ^(.*)$ http://www.vps12.com/$1 [L,R=301]

网页跳转代码大全

2013年3月29日 没有评论
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
------------------------------------------------------------------------------
不隐藏转向之后的地址 代码一
------------------------------------------------------------------------------
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Language" content="zh-cn"&gt;
&lt;meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form name=loading&gt;
&lt;P align=center&gt;&lt;FONT face=Arial color=#0066ff size=2&gt;loading...&lt;/FONT&gt; &lt;INPUT
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bolder; PADDING-BOTTOM: 0px; COLOR: #0066ff; BORDER-TOP-style: none; PADDING-TOP: 0px; FONT-FAMILY: Arial; BORDER-RIGHT-style: none; BORDER-LEFT-style: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-style: none"
size=46 name=chart&gt; &lt;BR&gt;&lt;INPUT
style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; COLOR: #0066ff; BORDER-BOTTOM: medium none; TEXT-ALIGN: center"
size=47 name=percent&gt;
&lt;SCRIPT&gt;
var bar=0
var line="||"
var amount="||"
count()
function count(){
bar=bar+2
amount =amount + line
document.loading.chart.value=amount
document.loading.percent.value=bar+"%"
if (bar&lt;99)
{setTimeout("count()",100);}
else
{window.location = "将这里改成要转入的网址";}
}&lt;/SCRIPT&gt;
&lt;/P&gt;&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
-------------------------------------------------------------------------------
 
不隐藏转向之后的地址 代码二
-------------------------------------------------------------------------------
&lt;html&gt;
&lt;body&gt;
&lt;script language="javascript"&gt;
&lt;!--
function goToURL() { //v2.0
for (var i=0; i&lt; (goToURL.arguments.length - 1); i+=2) //with arg pairs
eval(goToURL.arguments+".location='"+goToURL.arguments[i+1]+"'");
document.returnvalue = false;
}
//--&gt;
&lt;/script&gt;
&lt;body bgcolor="#FFFFFF" onLoad="goToURL('parent','将这里改成要转入的网址');return document.returnvalue"&gt;
&lt;/body&gt;
&lt;/html&gt;
-
------------------------------------------------------------------------------
 
不隐藏转向之后的地址 代码三
-------------------------------------------------------------------------------
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Language" content="zh-CN"&gt;
&lt;meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;SCRIPT LANGUAGE="javascript"&gt;
&lt;!-- Start Code
var ver = navigator.appVersion;
if (ver.indexOf("MSIE") != -1)
{
window.location.href="将这里改成要转入的网址"
}else
window.location.href="将这里改成要转入的网址"
// End Code --&gt;
&lt;/SCRIPT&gt;
&lt;/html&gt;
-------------------------------------------------------------------------------
 
不隐藏转向之后的地址 代码四
-------------------------------------------------------------------------------
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Language" content="zh-CN"&gt;
&lt;meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;meta http-equiv="refresh" content="0.1;url=将这里改成要转入的网址"&gt;
&lt;/body&gt;
&lt;/html&gt;
-------------------------------------------------------------------------------
 
可隐藏转向之后的地址
-------------------------------------------------------------------------------
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Language" content="zh-CN"&gt;
&lt;meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;frameset framespacing="0" border="0" rows="0" frameborder="0"&gt;
&lt;frame name="main" src="将这里改成要转入的网址" scrolling="auto" noresize&gt;
&lt;/frameset&gt;
&lt;/html&gt;
 
透明Flash的设置
++++++++++++++++++++++++++++++++++++++++++++++++++
主要是在Flash代码段中插入这一语句:&lt;param name=wmode value=transparent&gt;,请看以下实例:
 
&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="100%" height="100%"&gt;
&lt;param name="movie" value="../images/hudie.swf"&gt;
&lt;param name="quality" value="high"&gt;
&lt;param name=wmode value=transparent&gt; &lt;!--这个代码表示背景透明--!&gt;
&lt;embed src="../images/hudie.swf" width="100%" height="100%" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;
&lt;/object&gt;
分类: 编程实践 标签: ,

asp语言判断域名来路跳转代码

2012年11月21日 没有评论

经常有时我们需要做一些类301跳转的手段来对客户访问的域名进行重定向。以下代码为asp实现些目的。

利用asp语言判断域名来路跳转代码:

以下代码实现的效果是如果客户访问域名888.vps12.com时。自动跳转到http://hk.vps12.com/login/login.aspx

1
2
3
4
5
<%
if (request.ServerVariables("Server_NAME") = "888.vps12.com") then
Response.Redirect "http://hk.vps12.com/login/login.aspx"
end if
%>

以下代码实现的效果是如果客户访问域名时。域名后面自动加入端口8083。如:访问vps12.com时自动在vps12.com后面加入8083端口—— http://vps12.com:8083/

1
2
3
4
5
6
<%
host = Trim(Request.ServerVariables("HTTP_HOST"))
host = "http://" & host & ":8083"
Response.Redirect(host)
Response.End()
%>

判断浏览器语言如果是中文就跳到出错script

2012年11月12日 没有评论

很多时候我们的网站需要对访问地区做相应的判断,有个很容易的办法可以做到特别的效果。比如我们可以判断来访问者浏览器的语言。来做区分分流等。

代码如下:

?View Code JAVASCRIPT
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript" language="JavaScript1.2">// <![CDATA[
//
if (navigator.appName == 'Netscape')
var language = navigator.language;
else
var language = navigator.browserLanguage;
if (language.indexOf('zh') > -1) document.location.href = 'error.htm';
else
// End
// ]]></script>

asp及php的url跳转代码实现

2012年11月11日 没有评论

php语言环境下的跳转

1
2
3
4
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.vps12.com/");
?>

asp语言环境下的跳转

1
2
3
4
5
6
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", " http://www.vps12.com/"
Response.End
%>