利用“301”HTTP头给网站更换域名

Posted in 互联网 on February 29th, 2008 by Adam

由于要给一个网站更换新的域名,考虑到保留网站现有的搜索排名,而且希望访客访问http://旧网站.com/somepage.html可以直接跳转到http://新网站.com/somepage.html,于是决定采用“301”HTTP头来做转向。

由于网站属于Linux空间+Apache服务器(支持Mod-Rewrite模块),所以采用.htaccess文件来控制“301”HTTP头的转向,创建内容如下:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.新的网址.com/$1 [R=301,L]

下面是一些其他实现301转向的办法:

IIS服务器上的设置

* 在需要转向的文件或者目录上点击鼠标右键
* 选择“转向到其他网址”
* 输入新的转向网址
* 选择永久转向
* 点击应用即可

ColdFusion
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.新的网址.com">

PHP
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.新的网址.com" );
?>

ASP
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.新的网址.com/"
%>

ASP .NET

JSP (Java)
<%
response.setStatus(301);
response.setHeader( "Location", "http://www.新的网址.com/" );
response.setHeader( "Connection", "close" );
%>

CGI PERL
$q = new CGI;
print $q->redirect("http://www.新的网址.com/");

Ruby on Rails
def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "http://www.新的网址.com/"
end

个人觉得服务器上的301转向比脚本转向更加一劳永逸,只需简单设置或是一个文件即可实现整个网站所有文件的转向。

Tags:

话筒的烦恼

Posted in 窄多废话 on February 28th, 2008 by Adam

不记得系统安装过什么软件,Skype的时候话筒用不了,检查过音频属性,看不出话筒设置有什么异样和问题,换了一个新的耳机,在笔记本上没问题,换到我的电脑也不行,正在怀疑声卡出问题的时候,突然想到电脑用的是集成主板,于是赶紧去Intel的驱动器页面下载最新的主板驱动程序(Intel® 82845G),重新安装后,果然一切恢复正常,遗憾的只是浪费一晚上的时间哦。

13920080228004734.jpg

这是恢复正常后音频设备的属性框,觉得和之前的有点区别,注意看“录音”的“高级”按钮是灰色的,记得之前是可以点击打开的。
14220080303222159.jpg
上面两个选项不要打勾,经测试,任选其中一项话筒立即变哑巴。

测试硬件的时候,可以看到录音的绿色竖条随着录制的声音上下跳动,我们就可以判断,话筒录音已经正常。

Windows批处理(BAT)技巧

Posted in windows on February 27th, 2008 by Adam

最近写了一个自动检测局域网状况的批处理(BAT)文件,写完才发现批处理(BAT)里面也有不少名堂可以学习。

If 命令
if 表示将判断是否符合规定的条件,从而决定执行不同的命令。

1、if “参数” == “字符串”  待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。
如if “%1″==”a” format a:
if {%1}=={} goto noparms

2、if exist 文件名  待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如if exist config.sys edit config.sys

3、if errorlevel / if not errorlevel 数字  待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。
如if errorlevel 2 goto x2

for 命令
for 命令主要用于参数在指定的范围内循环执行命令。
在批处理文件中使用 FOR 命令时,指定变量请使用 %%variablefor
{%variable|%%variable} in (set) do command [ CommandLineOptions]
%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters 为特定命令指定参数或命令行开关。

组合命令(Compound Command)
1.&
Usage:第一条命令 & 第二条命令 [& 第三条命令...]用这种方法可以同时执行多条命令,而不管命令是否执行成功Sample:

2.&&
Usage:第一条命令 && 第二条命令 [&& 第三条命令...]用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令

3.||
Usage:第一条命令 || 第二条命令
[|| 第三条命令...]用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令

关于注册表的操作
1.创建
创建分为两种,一种是创建子项(Subkey)我们创建一个文件,内容如下:Windows
Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\me]
然后执行该脚本,你就已经在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下创建了一个名字为“me”的子项。另一种是创建一个项目名称那这种文件格式就是典型的文件格式,和你从注册表中导出的文件格式一致,内容如下

Windows Registry Editor Version
5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
“Invader”=”Ex4rch”
“Door”=C:\\WINNT\\system32\\door.exe
“Autodos”=dword:02
这样就在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下
新建了:Invader、door、about这三个项目
Invader的类型是“String &#118alue”
door的类型是“REG SZ &#118alue”
Autodos的类型是“DWORD &#118alue”
2.修改
修改相对来说比较简单,只要把你需要修改的项目导出,然后用记事本进行修改,然后导入(regedit /s)即可。
3.删除
我们首先来说说删除一个项目名称,我们创建一个如下的文件:Windows Registry
Editor Version
5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
“Ex4rch”=-
执行该脚本,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下的
“Ex4rch”就被删除了;我们再看看删除一个子项,我们创建一个如下的脚本:
Windows Registry Editor Version
5.00[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
执行该脚本,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]就已经被删
除了。

批处理(BAT)实例:生成当前日期时间的文件名
for /F "tokens=1,2,3 delims=/ " %%i in ('date /t') do set datefile=%%k-%%i-%%j
for /F "tokens=1,2 delims=: " %%i in ('time /t') do set datefile2=%%i-%%j
for /F "tokens=1,2 delims= " %%i in ('time /t') do set datefile3=%%j

set fn=%datefile%-%datefile2%-%datefile3%

解释:
/F 通过每个文件的每一行中分开的第一个空白符号。
delims=xxx – 指分隔符集。这个替换了空格和跳格键的默认分隔符集。
tokens=x,y,m-n – 指每行的哪一个符号被传递到每个迭代

运行test.bat时,避免弹出窗口的办法:

set ws=wscript.createobject("wscript.shell")
ws.run "test.bat /start",0
wscript.sleep 2000

附: Windows命令行参考

RSS Feed