<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/ulcmsdevlog" type="application/rss+xml" ref="self"></atom:link><fs:self_link href="http://feed.feedsky.com/ulcmsdevlog" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 14 May 2008 09:40:05 GMT</lastBuildDate><title>Development log</title><description>开发日志，技术点滴。</description><link>http://www.ulcms.com/devlog</link><language>en</language><pubDate>Wed, 14 May 2008 09:40:05 GMT</pubDate><dc:date>2008-05-14T09:40:05Z</dc:date><dc:language>en</dc:language><item><title>linux crontab注意的问题</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/74610839/4278056/1/item.html</link><content:encoded>&lt;p&gt;用crontab -e 编辑完成后，并不是马上reload的，crond会每隔一分钟检查一下cronjob file。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=24</wfw:commentRss><description>用crontab -e 编辑完成后，并不是马上reload的，crond会每隔一分钟检查一下cronjob file。</description><category>Linux</category><category>crontab</category><pubDate>Wed, 14 May 2008 17:40:05 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=24#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=24</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=24</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/74610839/4278056</fs:itemid></item><item><title>终于修改好了分卷备份mysql的的工具</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/72612358/4278056/1/item.html</link><content:encoded>&lt;p&gt;也就是faisunSQL，为了方便大量mysql数据导入虚拟主机，原来3.7版本有些问题，修改后加上对编码的支持、blob数据用十六进制导出、数据库查询更优化。有需要的朋友可以联系我。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=23</wfw:commentRss><description>也就是faisunSQL，为了方便大量mysql数据导入虚拟主机，原来3.7版本有些问题，修改后加上对编码的支持、blob数据用十六进制导出、数据库查询更优化。有需要的朋友可以联系我。</description><category>mysql</category><category>PHP</category><pubDate>Sat, 03 May 2008 16:44:13 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=23#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=23</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=23</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/72612358/4278056</fs:itemid></item><item><title>清除项目里的svn(或cvs)的小技巧</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/72612359/4278056/1/item.html</link><content:encoded>&lt;p&gt;在linxu下用&lt;a href=&quot;http://robbin.javaeye.com/&quot;&gt;robbin&lt;/a&gt;的法子：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;find . -type d -iname &amp;#8221;.svn&amp;#8221; -exec rm -rf {} \;&lt;/p&gt;
&lt;p&gt;在windows下用以下法子：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;1、在项目平级的目录，执行dos命令：&lt;br /&gt;
xcopy project_dir project_dir_1 /s /i&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;2、或者在项目根目录执行以下dos命令&lt;br /&gt;
for /r . %%a in (.) do @if exist &amp;#8220;%%a\.svn&amp;#8221; rd /s /q &amp;#8220;%%a\.svn&amp;#8221;&lt;/p&gt;
&lt;p&gt;其实我介绍的第二种方法可以用来干很多事的，比如把代码中的.svn替换为任意其他文件名并在硬盘根目录下执行，就可以从硬盘上删除所有的这个文件啦。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=20</wfw:commentRss><description>在linxu下用robbin的法子：
find . -type d -iname &amp;#8221;.svn&amp;#8221; -exec rm -rf {} \;
在windows下用以下法子：
1、在项目平级的目录，执行dos命令：
xcopy project_dir project_dir_1 /s /i
2、或者在项目根目录执行以下dos命令
for /r . %%a in (.) do @if exist &amp;#8220;%%a\.svn&amp;#8221; rd /s /q &amp;#8220;%%a\.svn&amp;#8221;
其实我介绍的第二种方法可以用来干很多事的，比如把代码中的.svn替换为任意其他文件名并在硬盘根目录下执行，就可以从硬盘上删除所有的这个文件啦。</description><category>CVS</category><category>SVN</category><category>ULCms</category><pubDate>Wed, 30 Apr 2008 10:20:35 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=20#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=20</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=20</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/72612359/4278056</fs:itemid></item><item><title>html convert to javascript tool</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/72612360/4278056/1/item.html</link><content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.ulcms.com/tools/html2js.html&quot;&gt;http://www.ulcms.com/tools/html2js.html&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=19</wfw:commentRss><description>http://www.ulcms.com/tools/html2js.html</description><category>javascript</category><pubDate>Tue, 29 Apr 2008 14:03:51 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=19#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=19</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=19</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/72612360/4278056</fs:itemid></item><item><title>301重定向实现方法，及对网站优化的作用</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/72612361/4278056/1/item.html</link><content:encoded>&lt;p&gt;301重定向（也叫301转向，301跳转）对网站优化所起的作用是不可忽视的，尤其是针对SE（搜索引擎）处理网站页面权重的时候，更加显得重要。网站 换了新域名，默认首页需要跳转等，从SEO角度来说，我们都建议使用301重定向，而不是JS跳转或META REFRESH或302转向，这些很容易引 来SE的惩罚。    什么是301重定向呢？     301重定向是当用户或搜索引擎向网站服务器发出浏览请求时，服务器返回的HTTP数据流中头信息(header)中的状态码的一种，表示本网页永久性转移到另一个地址。其它常见的状态码还包括，200表示一切正常，404网页找不到，302暂时转向，等等。     为什么要用301转向？     网址转向方法主要包括：301转向，302转向，JavaScript转向，PHP/ASP/CGI转向，META REFRESH 网页META刷新等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法，当然不是说不可以正当地用，方法本身没有错，但被作弊者用多了， 搜索引擎对这些可疑的转向都很敏感。何必冒险呢。    关于301转向和网址规范化问题，大家可以去阅读下ZAC写的文章。本文，仅仅讨论在ASP环境下，如何设置301重定向问题；其他语言亦可参考。     我们知道，网站的首页一般有以下几种：  http://piaoyi.org&lt;br /&gt;
http://www.piaoyi.org&lt;br /&gt;
http://piaoyi.org/index.asp&lt;br /&gt;
http://www.piaoyi.org/index.asp&lt;br /&gt;
……     很自然的，以上的这些网址形式都指向到了一个网站，如果在搜索引擎中都启用这些形式，那么，网页权重，PR都会分散到这几个网址上， 虽然，它们都是一个网站，而这不是我们想要的结果。那么，如何将以上的首页形式都定向到自己想要的网址上呢，比如http: //www.piaoyi.org，从而使得这些分散的网页权重，PR都集中到www.piaoyi.org上。这里就需要使用301永久重定向了。    ASP语言下，我们需要在默认首页，如index.asp顶部最上方加入以下代码：&lt;/p&gt;
&lt;p id=&quot;yy&quot;&gt;&amp;lt;%&lt;br /&gt;
Dim dm,sn&lt;br /&gt;
dm=Request.ServerVariables(&amp;#8221;Server_name&amp;#8221;)  &amp;#8217;获取域名&lt;br /&gt;
&amp;#8216;这里的3是指www的长度&lt;br /&gt;
if left(dm,3)&amp;lt;&amp;gt;&amp;#8221;www&amp;#8221; then&lt;br /&gt;
Response.Status=&amp;#8221;301 Moved Permanently&amp;#8221;&lt;br /&gt;
Response.AddHeader &amp;#8221;Location&amp;#8221;, &amp;#8221;http://www.piaoyi.org&amp;#8221;&lt;br /&gt;
Response.End&lt;br /&gt;
end if&lt;br /&gt;
%&amp;gt;&lt;/p&gt;
&lt;p&gt;这里的代码是经过flymorn加工后的，您也可以根据实际需要对本代码进行适当的修改以适合你需求的样式。本代码自动校验没有输入www的，301跳转到www.piaoyi.org这个网址上，从而使得网页权重得到累加，达到SEO优化的目的。     但这里出现一个问题，如果有链接指向到http://www.piaoyi.org/index.asp（比如站内链接），那么搜索 引擎也同样会给这个网址形式加分，虽然index.asp是默认首页，但我们希望的是把所有权重都给与http://www.piaoyi.org这个形 式。有人说，这两个形式不是都一样吗？不一样。比如：&lt;a href=&quot;http://www.023ff.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;http://www.023ff.com&lt;/font&gt;&lt;/a&gt;的PR为0，而&lt;a href=&quot;http://www.023ff.com/index.asp&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;http://www.023ff.com/index.asp&lt;/font&gt;&lt;/a&gt;的PR 为2。从这点可以看出，SE是给与是否有index.asp的网址形式以不同的权重的。而使用Request.ServerVariables (&amp;#8221;SCRIPT_NAME&amp;#8221;)或Request(&amp;#8221;url&amp;#8221;)获取到的后缀无论输入时是否带有index.asp都一律返回index.asp，从而导 致无法判断，也无法使用301重定向，当然这是指仅asp语言环境。    目前解决方法就是，利用js获取当前网址window.location.href，然后把这个当前网址写入cookies； asp读取这个cookies，从而判断网址中是否包含index.asp，如果包含，就使用301重定向。建议：在任何链接中避免有直接指向 index.asp的形式，包括外链及内链，尤其是内链。这只是一个折中的方法。针对该问题，希望与各位高手一起讨论。如果您有其他解决的方法，请留下您 的评论。    利用js通过cookies给asp传递网址的代码如下：&lt;/p&gt;
&lt;p id=&quot;yy&quot;&gt;&amp;lt;script language=&amp;#8221;javascript&amp;#8221;&amp;gt;&lt;br /&gt;
var url=window.location.href.toLowerCase(); //小写&lt;br /&gt;
document.cookie = &amp;#8221;urlck&amp;#8221; + &amp;#8221;=&amp;#8221; + escape(url);&lt;br /&gt;
&amp;lt;/script&amp;gt;  &amp;lt;%&lt;br /&gt;
Dim sn&lt;br /&gt;
sn=request.cookies(&amp;#8221;urlck&amp;#8221;)  &amp;#8217;获取后缀&lt;br /&gt;
response.cookies(&amp;#8221;urlck&amp;#8221;)=&amp;#8221;&quot;  &amp;#8217;清空cookies  if right(sn,11)=&amp;#8221;default.asp&amp;#8221; then&lt;br /&gt;
Response.Status=&amp;#8221;301 Moved Permanently&amp;#8221;&lt;br /&gt;
Response.AddHeader &amp;#8221;Location&amp;#8221;, &amp;#8221;http://www.piaoyi.org&amp;#8221;&lt;br /&gt;
Response.End&lt;br /&gt;
end if&lt;br /&gt;
%&amp;gt;&lt;/p&gt;
&lt;p&gt;但是很遗憾，如果这些网址形式不是实际上的人为输入，而是搜索引擎访问的结果，搜索引擎又是忽略JS的，也就是说，js里赋值的cookie并不能被SE识别，从而导致也无法使用301跳转。这个问题有待解决。     其他语言下的301重定向：  1、Unix/Linux+Apache主机，在.htaccess文件中增加301转向指令，采用 mod_rewrite 技术，如：PHP代码&lt;/p&gt;
&lt;p id=&quot;yy&quot;&gt;Options +FollowSymLinks&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^www.piaoyi.org [NC]&lt;br /&gt;
RewriteRule ^(.*)$ http://piaoyi.org/$1 [L,R=301]&lt;/p&gt;
&lt;p&gt;2、Window+IIS主机，在服务器软件的系统管理员配置中设置，方法：&lt;/p&gt;
&lt;p id=&quot;yy&quot;&gt;打开Internet信息服务管理器，在欲重定向的网页或目录上按右键，选中“重定向到URL”，在对话框中输入目标页面的地址，记得选中“资源的永久重定向”-&amp;gt;“应用” 。&lt;/p&gt;
&lt;p&gt;3、用PHP/ASP .NET实现301转向（HTML无法做301转向），方法如下：  1）用PHP实现&lt;/p&gt;
&lt;p id=&quot;yy&quot;&gt;PHP代码&lt;br /&gt;
&amp;lt;? Header( &amp;#8221;HTTP/1.1 301 Moved Permanently&amp;#8221; );&lt;br /&gt;
Header( &amp;#8221;Location: http://piaoyi.org&amp;#8221; );?&amp;gt;&lt;/p&gt;
&lt;p&gt;2）用ASP.NET实现&lt;/p&gt;
&lt;p id=&quot;yy&quot;&gt;ASP/Visual Basic代码&lt;br /&gt;
&amp;lt;script runat=&amp;#8221;server&amp;#8221;&amp;gt;&lt;br /&gt;
private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;
{&lt;br /&gt;
Response.Status = &amp;#8221;301 Moved Permanently&amp;#8221;;&lt;br /&gt;
Response.AddHeader(&amp;#8221;Location&amp;#8221;,&amp;#8221;http://piaoyi.org&amp;#8221;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p&gt;经过这些设置后，301转向应该可以配置OK啦，如果想检查一下是否正确，则可以使用网上提供Server Header检查工具，如&lt;a href=&quot;http://www.seoconsultants.com/tools/headers.asp&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;Check Server Headers Tool - HTTP Status Codes Checker&lt;/font&gt;&lt;/a&gt;。     用以上检测http状态码工具，可以做个简单的检查，如检查http://023ff.com，返回的结果如下：&lt;/p&gt;
&lt;p id=&quot;yy&quot;&gt;#1 Server Response: http://023ff.com&lt;br /&gt;
HTTP Status Code: HTTP/1.1 301 Moved Permanently&lt;br /&gt;
Connection: close&lt;br /&gt;
Date: Mon, 25 Feb 2008 01:54:09 GMT&lt;br /&gt;
Server: Microsoft-IIS/6.0&lt;br /&gt;
X-Powered-By: ASP.NET&lt;br /&gt;
Location: http://www.023ff.com&lt;br /&gt;
Content-Length: 0&lt;br /&gt;
Content-Type: text/html&lt;br /&gt;
Set-Cookie: ASPSESSIONIDACBCSBDR=FCJELLLALFNPOCMBNMOLMJHN; path=/&lt;br /&gt;
Cache-control: private&lt;br /&gt;
Redirect Target: http://www.023ff.com  #2 Server Response: http://www.023ff.com&lt;br /&gt;
HTTP Status Code: HTTP/1.1 200 OK&lt;br /&gt;
Connection: close&lt;br /&gt;
Date: Mon, 25 Feb 2008 01:54:13 GMT&lt;br /&gt;
Server: Microsoft-IIS/6.0&lt;br /&gt;
X-Powered-By: ASP.NET&lt;br /&gt;
Content-Length: 29330&lt;br /&gt;
Content-Type: text/html&lt;br /&gt;
Set-Cookie: ASPSESSIONIDACBCSBDR=GCJELLLAECPBADKMADAJOBLC; path=/&lt;br /&gt;
Cache-control: private&lt;/p&gt;
&lt;p&gt;注意以上返回的结果中第二行“HTTP Status Code: HTTP/1.1 301 Moved Permanently”，说明这个网址采用了301永久重定向功能了，设置成功。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=18</wfw:commentRss><description>301重定向（也叫301转向，301跳转）对网站优化所起的作用是不可忽视的，尤其是针对SE（搜索引擎）处理网站页面权重的时候，更加显得重要。网站 换了新域名，默认首页需要跳转等，从SEO角度来说，我们都建议使用301重定向，而不是JS跳转或META REFRESH或302转向，这些很容易引 来SE的惩罚。    什么是301重定向呢？     301重定向是当用户或搜索引擎向网站服务器发出浏览请求时，服务器返回的HTTP数据流中头信息(header)中的状态码的一种，表示本网页永久性转移到另一个地址。其它常见的状态码还包括，200表示一切正常，404网页找不到，302暂时转向，等等。     为什么要用301转向？     网址转向方法主要包括：301转向，302转向，JavaScript转向，PHP/ASP/CGI转向，META REFRESH 网页META刷新等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法，当然不是说不可以正当地用，方法本身没有错，但被作弊者用多了， 搜索引擎对这些可疑的转向都很敏感。何必冒险呢。    关于301转向和网址规范化问题，大家可以去阅读下ZAC写的文章。本文，仅仅讨论在ASP环境下，如何设置301重定向问题；其他语言亦可参考。     我们知道，网站的首页一般有以下几种：  http://piaoyi.org
http://www.piaoyi.org
http://piaoyi.org/index.asp
http://www.piaoyi.org/index.asp
……     很自然的，以上的这些网址形式都指向到了一个网站，如果在搜索引擎中都启用这些形式，那么，网页权重，PR都会分散到这几个网址上， 虽然，它们都是一个网站，而这不是我们想要的结果。那么，如何将以上的首页形式都定向到自己想要的网址上呢，比如http: //www.piaoyi.org，从而使得这些分散的网页权重，PR都集中到www.piaoyi.org上。这里就需要使用301永久重定向了。    ASP语言下，我们需要在默认首页，如index.asp顶部最上方加入以下代码：
&amp;#60;%
Dim dm,sn
dm=Request.ServerVariables(&amp;#8221;Server_name&amp;#8221;)  &amp;#8217;获取域名
&amp;#8216;这里的3是指www的长度
if left(dm,3)&amp;#60;&amp;#62;&amp;#8221;www&amp;#8221; then
Response.Status=&amp;#8221;301 Moved Permanently&amp;#8221;
Response.AddHeader &amp;#8221;Location&amp;#8221;, &amp;#8221;http://www.piaoyi.org&amp;#8221;
Response.End
end if
%&amp;#62;
这里的代码是经过flymorn加工后的，您也可以根据实际需要对本代码进行适当的修改以适合你需求的样式。本代码自动校验没有输入www的，301跳转到www.piaoyi.org这个网址上，从而使得网页权重得到累加，达到SEO优化的目的。     但这里出现一个问题，如果有链接指向到http://www.piaoyi.org/index.asp（比如站内链接），那么搜索 引擎也同样会给这个网址形式加分，虽然index.asp是默认首页，但我们希望的是把所有权重都给与http://www.piaoyi.org这个形 式。有人说，这两个形式不是都一样吗？不一样。比如：http://www.023ff.com的PR为0，而http://www.023ff.com/index.asp的PR 为2。从这点可以看出，SE是给与是否有index.asp的网址形式以不同的权重的。而使用Request.ServerVariables (&amp;#8221;SCRIPT_NAME&amp;#8221;)或Request(&amp;#8221;url&amp;#8221;)获取到的后缀无论输入时是否带有index.asp都一律返回index.asp，从而导 致无法判断，也无法使用301重定向，当然这是指仅asp语言环境。    目前解决方法就是，利用js获取当前网址window.location.href，然后把这个当前网址写入cookies； asp读取这个cookies，从而判断网址中是否包含index.asp，如果包含，就使用301重定向。建议：在任何链接中避免有直接指向 index.asp的形式，包括外链及内链，尤其是内链。这只是一个折中的方法。针对该问题，希望与各位高手一起讨论。如果您有其他解决的方法，请留下您 的评论。    利用js通过cookies给asp传递网址的代码如下：
&amp;#60;script language=&amp;#8221;javascript&amp;#8221;&amp;#62;
var url=window.location.href.toLowerCase(); //小写
document.cookie = &amp;#8221;urlck&amp;#8221; + &amp;#8221;=&amp;#8221; + escape(url);
&amp;#60;/script&amp;#62;  &amp;#60;%
Dim sn
sn=request.cookies(&amp;#8221;urlck&amp;#8221;)  &amp;#8217;获取后缀
response.cookies(&amp;#8221;urlck&amp;#8221;)=&amp;#8221;&quot;  &amp;#8217;清空cookies  if right(sn,11)=&amp;#8221;default.asp&amp;#8221; then
Response.Status=&amp;#8221;301 Moved Permanently&amp;#8221;
Response.AddHeader &amp;#8221;Location&amp;#8221;, &amp;#8221;http://www.piaoyi.org&amp;#8221;
Response.End
end if
%&amp;#62;
但是很遗憾，如果这些网址形式不是实际上的人为输入，而是搜索引擎访问的结果，搜索引擎又是忽略JS的，也就是说，js里赋值的cookie并不能被SE识别，从而导致也无法使用301跳转。这个问题有待解决。     其他语言下的301重定向：  1、Unix/Linux+Apache主机，在.htaccess文件中增加301转向指令，采用 mod_rewrite 技术，如：PHP代码
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.piaoyi.org [NC]
RewriteRule ^(.*)$ http://piaoyi.org/$1 [L,R=301]
2、Window+IIS主机，在服务器软件的系统管理员配置中设置，方法：
打开Internet信息服务管理器，在欲重定向的网页或目录上按右键，选中“重定向到URL”，在对话框中输入目标页面的地址，记得选中“资源的永久重定向”-&amp;#62;“应用” 。
3、用PHP/ASP .NET实现301转向（HTML无法做301转向），方法如下：  1）用PHP实现
PHP代码
&amp;#60;? Header( &amp;#8221;HTTP/1.1 301 Moved Permanently&amp;#8221; );
Header( &amp;#8221;Location: http://piaoyi.org&amp;#8221; );?&amp;#62;
2）用ASP.NET实现
ASP/Visual Basic代码
&amp;#60;script runat=&amp;#8221;server&amp;#8221;&amp;#62;
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = &amp;#8221;301 Moved Permanently&amp;#8221;;
Response.AddHeader(&amp;#8221;Location&amp;#8221;,&amp;#8221;http://piaoyi.org&amp;#8221;);
}
&amp;#60;/script&amp;#62;
经过这些设置后，301转向应该可以配置OK啦，如果想检查一下是否正确，则可以使用网上提供Server Header检查工具，如Check Server Headers Tool - HTTP Status Codes Checker。     用以上检测http状态码工具，可以做个简单的检查，如检查http://023ff.com，返回的结果如下：
#1 Server Response: http://023ff.com
HTTP Status Code: HTTP/1.1 301 Moved Permanently
Connection: close
Date: Mon, 25 Feb 2008 01:54:09 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Location: http://www.023ff.com
Content-Length: 0
Content-Type: text/html
Set-Cookie: ASPSESSIONIDACBCSBDR=FCJELLLALFNPOCMBNMOLMJHN; path=/
Cache-control: private
Redirect Target: http://www.023ff.com  #2 Server Response: http://www.023ff.com
HTTP Status Code: HTTP/1.1 200 OK
Connection: close
Date: Mon, 25 Feb 2008 01:54:13 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 29330
Content-Type: text/html
Set-Cookie: ASPSESSIONIDACBCSBDR=GCJELLLAECPBADKMADAJOBLC; path=/
Cache-control: private
注意以上返回的结果中第二行“HTTP Status Code: HTTP/1.1 301 Moved Permanently”，说明这个网址采用了301永久重定向功能了，设置成功。</description><category>SEO</category><pubDate>Sun, 27 Apr 2008 22:16:27 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=18#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=18</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=18</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/72612361/4278056</fs:itemid></item><item><title>301 Redirect 永久重定向的实现</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/72612362/4278056/1/item.html</link><content:encoded>&lt;p&gt;在我们的网站建设中，时常会遇到需要网页重定向的情况：象网站调整，如改变网页目录结构，网页被移到一个新地址，再或者，网页扩展名改变，如因应用 需要把.php改成.Html或.shtml，在这种情况下，如果不做重定向，则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页 面错误信息，访问流量白白丧失；再如某些注册了多个域名的网站，也需要通过重定向让访问这些域名的用户自动跳转到主站点，等等。　　常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;301 redirect: 301代表永久性转移(Permanently Moved)，301重定向是网页更改地址后对搜索引擎友好的最好方法，只要不是暂时搬移的情况,都建议使用301来做转址。&lt;/li&gt;
&lt;li&gt;302 redirect: 302代表暂时性转移(Temporarily Moved )，在前些年，不少Black Hat SEO曾广泛应用这项技术作弊，目前，各大主要搜索引擎均加强了打击力度，象Google前些年对Business.com以及近来对BMW德国网站的惩 罚。即使网站客观上不是spam，也很容易被搜寻引擎容易误判为spam而遭到惩罚。&lt;/li&gt;
&lt;li&gt;meta fresh: 这在2000年前比较流行，不过现在已很少见。其具体是通过网页中的meta指令，在特定时间后重定向到新的网页，如果延迟的时间太短(约5秒之內)，会被判断为spam。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这里我们主要谈谈如何通过301 Redirect实现网页重定向&lt;/p&gt;
&lt;h3&gt;IIS服务器实现301重定向&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;* 打开internet信息服务管理器，在欲重定向的网页或目录上按右键，见下图&lt;br /&gt;
* 选中“重定向到URL”&lt;br /&gt;
* 在对话框中输入目标页面的地址&lt;br /&gt;
* 切记，记得选中“资源的永久重定向”&lt;br /&gt;
* 当然，最后要点击“应用”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;http://seo.highdiy.com/wp-content/uploads/2006/04/301.gif&quot; class=&quot;centered&quot; id=&quot;image34&quot; alt=&quot;在IIS下配置301永久重定向&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Apache服务器实现301重定向&lt;/h3&gt;
&lt;p&gt;相比较来说，Apache实现起来要比IIS简单多了。在Apache中，有个很重要的文件.htaccess，通过对它的设置，可以实现很多强大的功能，301重定向只是其中之一。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Redirect permanent / http://seo.highdiy.com/ ;将目录下内容重定向到http://seo.highdiy.com/&lt;br /&gt;
redirect permanent /old.html http://seo.highdiy.com/new-url/ ;将网页old.html内容重定向到http://seo.highdiy.com/new-url/&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;通过合理地配置重定向参数中的正则表达式，可以实现更复杂的匹配。有兴趣的朋友可参考Apache手册。&lt;/p&gt;
&lt;p&gt;其他方法还有：&lt;/p&gt;
&lt;h3&gt;PHP下的301重定向&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;lt;? Header( &amp;#8220;HTTP/1.1 301 Moved Permanently&amp;#8221; );&lt;br /&gt;
Header( &amp;#8220;Location: http://seo.highdiy.com&amp;#8221; );?&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3&gt;ASP下的301重定向&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;lt;%@ Language=VBScript %&amp;gt;&lt;br /&gt;
&amp;lt;% Response.Status=”301 Moved Permanently” Response.AddHeader “Location”, ” http://seo.highdiy.com”&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3&gt;ASP .NET下的301重定向&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;lt;script runat=”server”&amp;gt;&lt;br /&gt;
private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;
{&lt;br /&gt;
Response.Status = “301 Moved Permanently”;&lt;br /&gt;
Response.AddHeader(”Location”,”http://seo.highdiy.com”);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;配置完成后，要认真检查一下是否正确。Internet有很多类似的Server Header检查工具，如&lt;a href=&quot;http://www.seoconsultants.com/tools/headers.asp&quot; title=&quot;检查301重定向配置是否正确&quot; target=&quot;_blank&quot;&gt;Check Server Headers Tool - HTTP Status Codes Checker&lt;/a&gt;或本站提供的这个&lt;a href=&quot;http://seo.highdiy.com/index.php/seo/search-engine-friendly-redirect-checker/&quot; title=&quot;网页重定向检查工具&quot;&gt;网页重定向检查&lt;/a&gt;工具。&lt;/p&gt;
&lt;p&gt;from:http://seo.highdiy.com/index.php/seo/how-to-301-redirect/&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=17</wfw:commentRss><description>在我们的网站建设中，时常会遇到需要网页重定向的情况：象网站调整，如改变网页目录结构，网页被移到一个新地址，再或者，网页扩展名改变，如因应用 需要把.php改成.Html或.shtml，在这种情况下，如果不做重定向，则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页 面错误信息，访问流量白白丧失；再如某些注册了多个域名的网站，也需要通过重定向让访问这些域名的用户自动跳转到主站点，等等。　　常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh：

301 redirect: 301代表永久性转移(Permanently Moved)，301重定向是网页更改地址后对搜索引擎友好的最好方法，只要不是暂时搬移的情况,都建议使用301来做转址。
302 redirect: 302代表暂时性转移(Temporarily Moved )，在前些年，不少Black Hat SEO曾广泛应用这项技术作弊，目前，各大主要搜索引擎均加强了打击力度，象Google前些年对Business.com以及近来对BMW德国网站的惩 罚。即使网站客观上不是spam，也很容易被搜寻引擎容易误判为spam而遭到惩罚。
meta fresh: 这在2000年前比较流行，不过现在已很少见。其具体是通过网页中的meta指令，在特定时间后重定向到新的网页，如果延迟的时间太短(约5秒之內)，会被判断为spam。

这里我们主要谈谈如何通过301 Redirect实现网页重定向
IIS服务器实现301重定向
* 打开internet信息服务管理器，在欲重定向的网页或目录上按右键，见下图
* 选中“重定向到URL”
* 在对话框中输入目标页面的地址
* 切记，记得选中“资源的永久重定向”
* 当然，最后要点击“应用”

Apache服务器实现301重定向
相比较来说，Apache实现起来要比IIS简单多了。在Apache中，有个很重要的文件.htaccess，通过对它的设置，可以实现很多强大的功能，301重定向只是其中之一。
Redirect permanent / http://seo.highdiy.com/ ;将目录下内容重定向到http://seo.highdiy.com/
redirect permanent /old.html http://seo.highdiy.com/new-url/ ;将网页old.html内容重定向到http://seo.highdiy.com/new-url/
通过合理地配置重定向参数中的正则表达式，可以实现更复杂的匹配。有兴趣的朋友可参考Apache手册。
其他方法还有：
PHP下的301重定向
&amp;#60;? Header( &amp;#8220;HTTP/1.1 301 Moved Permanently&amp;#8221; );
Header( &amp;#8220;Location: http://seo.highdiy.com&amp;#8221; );?&amp;#62;
ASP下的301重定向
&amp;#60;%@ Language=VBScript %&amp;#62;
&amp;#60;% Response.Status=”301 Moved Permanently” Response.AddHeader “Location”, ” http://seo.highdiy.com”&amp;#62;
ASP .NET下的301重定向
&amp;#60;script [...]</description><category>PHP</category><category>apache</category><pubDate>Sun, 27 Apr 2008 16:05:04 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=17#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=17</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=17</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/72612362/4278056</fs:itemid></item><item><title>.htaccess设置指南</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/72612363/4278056/1/item.html</link><content:encoded>&lt;p&gt;.htaccess 会降低APACHE的性能，除非你对目录权限要求很高或需要做UrlRewrite，否则不推荐你使用.&lt;/p&gt;
&lt;p&gt;如果你的服务器目录结构是这样：&lt;/p&gt;
&lt;p&gt;/usr/corsak/wwwroot/www/maindir&lt;/p&gt;
&lt;p&gt;如果Apache指令中开启了AllowOverride支持.htaccess文件，每访问一次会依次搜索：&lt;/p&gt;
&lt;p&gt;/usr/corsak/wwwroot/www/maindir/.htaccess&lt;br /&gt;
/usr/corsak/wwwroot/www/.htaccess&lt;br /&gt;
/usr/corsak/wwwroot/.htaccess&lt;/p&gt;
&lt;p&gt;下面是一份详细的文档，不知道哪年从哪找的。&lt;br /&gt;
因为在一个国外的空间的根文件夹下看到这个.htaccess,搞不懂是干什么的,在落伍论坛找到一篇文章,先转过来放着,以后再慢慢研究,嘿嘿..&lt;br /&gt;
Apache指南: .htaccess文件&lt;/p&gt;
&lt;p&gt;.htaccess文件提供了针对目录改变配置的方法。&lt;/p&gt;
&lt;p&gt;* .htaccess文件&lt;br /&gt;
* 工作原理和使用方法&lt;br /&gt;
* 使用.htaccess文件的场合&lt;br /&gt;
* 指令的生效&lt;br /&gt;
* 认证举例&lt;br /&gt;
* 服务器端包含举例&lt;br /&gt;
* CGI举例&lt;br /&gt;
* 疑难解答&lt;/p&gt;
&lt;p&gt;top&lt;br /&gt;
.htaccess文件&lt;br /&gt;
相关模块     相关指令&lt;/p&gt;
&lt;p&gt;* core&lt;br /&gt;
* mod_auth&lt;br /&gt;
* mod_cgi&lt;br /&gt;
* mod_include&lt;br /&gt;
* mod_mime&lt;/p&gt;
&lt;p&gt;* AccessFileName&lt;br /&gt;
* AllowOverride&lt;br /&gt;
* Options&lt;br /&gt;
* AddHandler&lt;br /&gt;
* SetHandler&lt;br /&gt;
* AuthType&lt;br /&gt;
* AuthName&lt;br /&gt;
* AuthUserFile&lt;br /&gt;
* AuthGroupFile&lt;br /&gt;
* Require&lt;/p&gt;
&lt;p&gt;top&lt;br /&gt;
工作原理和使用方法&lt;/p&gt;
&lt;p&gt;.htaccess文件(或者&amp;#8221;分布式配置文件&amp;#8221;提供了针对目录改变配置的方法， 即，在一个特定的文档目录中放置一个包含一个或多个指令的文件， 以作用于此目录及其所有子目录。&lt;/p&gt;
&lt;p&gt;说明：如果需要使用.htaccess以外的其他文件名，可以用AccessFileName指令来改变。 例如，需要使用.config，则可以在服务器配置文件中按以下方法配置：&lt;/p&gt;
&lt;p&gt;AccessFileName .config&lt;/p&gt;
&lt;p&gt;允许放在这些文件中的指令取决于AllowOverride指令， 此指令按类别决定了.htaccess文件中哪些指令才是有效的。 如果一个指令允许放在.htaccess文件中，则，在本手册的说明中，此指令会有一个覆盖段， 其中说明了为使此指令生效而必须在AllowOverride指令中设置的值。&lt;/p&gt;
&lt;p&gt;例如，本手册对AddDefaultCharset指令的说明表明了， 此指令可以用于.htaccess文件(见 Context一行)，而Override一行是&amp;#8221;FileInfo&amp;#8221;， 那么为使.htaccess中的此指令有效，则至少要设置&amp;#8221;AllowOverride FileInfo&amp;#8221;。&lt;br /&gt;
例子:&lt;br /&gt;
Context:     server config, virtual host, directory, .htaccess&lt;br /&gt;
Override:     FileInfo&lt;/p&gt;
&lt;p&gt;如果不能确定一个特定的指令是否允许用于.htaccess文件， 可以查阅手册中对指令的说明，看在Context(“上下文”)行中是否有&amp;#8221;.htaccess.&amp;#8221;。&lt;br /&gt;
top&lt;br /&gt;
使用.htaccess文件的场合&lt;/p&gt;
&lt;p&gt;一般情况下，不应该使用.htaccess文件，除非你对主服务器配置文件没有存取权限。 有一种很常见的误解，认为用户认证只能通过.htaccess文件实现，但并不是这样， 把用户认证写在主服务器配置中是完全可行的，而且是一种很好的方法。&lt;/p&gt;
&lt;p&gt;在内容提供者需要针对目录改变服务器的配置而对服务器系统没有root权限时， 则应该使用.htaccess文件。如果服务器管理员不愿意频繁修改配置， 则可以允许用户通过.htaccess文件自己修改配置，尤其是ISP在一个机器上 宿主多个用户站点，而又希望用户可以自己改变配置的情况下。&lt;/p&gt;
&lt;p&gt;虽然如此，一般都应该尽可能地避免使用.htaccess文件。 任何希望放在.htaccess文件中的配置，都可以放在主服务器的&amp;lt;Directory&amp;gt;段中，而且更高效。&lt;/p&gt;
&lt;p&gt;避免使用.htaccess文件有两个主要原因。&lt;/p&gt;
&lt;p&gt;首先是性能。 如果AllowOverride允许使用.htaccess文件， 则，Apache需要在每个目录中查找.htaccess文件，因此，无论是否真正用到， 允许使用.htaccess文件都会导致性能的下降。 另外，每次请求一个页面时，都需要读取.htaccess文件。&lt;/p&gt;
&lt;p&gt;还有，Apache必须在所有更高级的目录中查找.htaccess文件， 使所有有效的指令都起作用(参见how directives are applied.)，所以， 如果有对/www/htdocs/example中页面的请求，Apache必须查找以下文件：&lt;/p&gt;
&lt;p&gt;/.htaccess&lt;br /&gt;
/www/.htaccess&lt;br /&gt;
/www/htdocs/.htaccess&lt;br /&gt;
/www/htdocs/example/.htaccess&lt;/p&gt;
&lt;p&gt;而且，对此目录以外的每个文件访问，还有4个附加的文件系统访问，即使这些文件都不存在。 (注意，这可能仅仅发生在 / 允许使用.htaccess文件的情况下，虽然这种情况并不多。)&lt;/p&gt;
&lt;p&gt;其次是安全。 如此，会允许用户修改服务器的配置，可能会导致未加限制的修改，请认真考虑是否给予用户这样的特权。 但是，如果给予用户较少的特权而不能满足其需要，则会带来额外的技术支持请求， 所以，必须明确地告诉用户已经给予他们的权限，说明AllowOverride设置的值， 并引导他们参阅相应的说明，以免日后许多麻烦。&lt;/p&gt;
&lt;p&gt;注意，在/www/htdocs/example目录下.htaccess文件中放置指令，与， 在主服务器配置文件中&amp;lt;Directory /www/htdocs/example&amp;gt;段中放置相同指令， 是等效的。：&lt;/p&gt;
&lt;p&gt;/www/htdocs/example中的.htaccess:&lt;br /&gt;
/www/htdocs/example中.htaccess文件的内容&lt;/p&gt;
&lt;p&gt;AddType text/example .exm&lt;br /&gt;
httpd.conf文件中的段&lt;/p&gt;
&lt;p&gt;&amp;lt;Directory /www/htdocs/example&amp;gt;&lt;br /&gt;
AddType text/example .exm&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;/p&gt;
&lt;p&gt;但是，把这个配置放置在服务器配置文件中则更加高效，因为只需要在Apache启动时读取一次， 而不是在有文件请求时每次都读取。&lt;/p&gt;
&lt;p&gt;将AllowOverride设置为&amp;#8221;none&amp;#8221;可以完全禁止使用.htaccess文件。&lt;/p&gt;
&lt;p&gt;AllowOverride None&lt;br /&gt;
top&lt;br /&gt;
指令的生效&lt;/p&gt;
&lt;p&gt;.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录， 但是，很重要需要记住的是，其更高级的目录也可能会有.htaccess文件， 而指令是按查找顺序依次生效，所以， 一个特定目录下的.htaccess文件中的指令可能会覆盖其更高级目录中的 .htaccess文件的指令，即， 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。&lt;/p&gt;
&lt;p&gt;例如:&lt;/p&gt;
&lt;p&gt;目录/www/htdocs/example1中的.htaccess文件有如下内容：&lt;/p&gt;
&lt;p&gt;Options +ExecCGI&lt;/p&gt;
&lt;p&gt;(注意: 必须设置&amp;#8221;AllowOverride Options&amp;#8221;以允许在.htaccess文件中使用 &amp;#8220;Options&amp;#8221;指令。)&lt;/p&gt;
&lt;p&gt;在目录/www/htdocs/example1/example2中的.htaccess文件有如下内容：&lt;/p&gt;
&lt;p&gt;Options Includes&lt;/p&gt;
&lt;p&gt;由于第二个.htaccess文件的存在，/www/htdocs/example1/example2中 的CGI执行是不允许的，而只允许Options Includes，它完全覆盖了之前的设置。&lt;br /&gt;
top&lt;br /&gt;
认证举例&lt;/p&gt;
&lt;p&gt;如果你为了知道如何认证，直接从这里开始看，有很重要的一点需要注意，有一种常见的误解， 认为实现密码认证必须要使用.htaccess文件，其实不是这样。 把认证指令放在主服务器配置文件的&amp;lt;Directory&amp;gt;段中，是一个更好的方法， 而.htaccess文件应该仅仅用于无权访问主服务器配置文件的时候。 参见上述的使用.htaccess文件的场合。&lt;/p&gt;
&lt;p&gt;有此声明在先，如果你仍然需要使用.htaccess文件，请看以下说明。&lt;/p&gt;
&lt;p&gt;必须设置&amp;#8221;AllowOverride AuthConfig&amp;#8221;以允许这些指令生效&lt;/p&gt;
&lt;p&gt;.htaccess文件的内容:&lt;/p&gt;
&lt;p&gt;AuthType Basic&lt;br /&gt;
AuthName &amp;#8220;Password Required&amp;#8221;&lt;br /&gt;
AuthUserFile /www/passwords/password.file&lt;br /&gt;
AuthGroupFile /www/passwords/group.file&lt;br /&gt;
Require Group admins&lt;/p&gt;
&lt;p&gt;注意，必须设置AllowOverride AuthConfig以允许这些指令生效&lt;/p&gt;
&lt;p&gt;更详细的有关身份识别和认证的说明，请参见authentication tutorial。&lt;br /&gt;
top&lt;br /&gt;
服务器端包含举例&lt;/p&gt;
&lt;p&gt;.htaccess文件的另一个常见用途是允许一个特定目录的服务器端包含(Server Side Includes)， 可以在需要的目录中放置.htaccess文件，并如下配置：&lt;/p&gt;
&lt;p&gt;Options +Includes&lt;br /&gt;
AddType text/html shtml&lt;br /&gt;
AddHandler server-parsed shtml&lt;/p&gt;
&lt;p&gt;注意，必须同时设置AllowOverride Options和 AllowOverride FileInfo使这些指令生效。&lt;/p&gt;
&lt;p&gt;更详细的有关服务器端包含的说明，请参见SSI tutorial。&lt;br /&gt;
top&lt;br /&gt;
CGI举例&lt;/p&gt;
&lt;p&gt;最后，可以通过.htaccess文件允许在特定目录中执行CGI程序，需按如下配置：&lt;/p&gt;
&lt;p&gt;Options +ExecCGI&lt;br /&gt;
AddHandler cgi-script cgi pl&lt;/p&gt;
&lt;p&gt;另外，如下，可以使给定目录下所有文件被视为CGI程序：&lt;/p&gt;
&lt;p&gt;Options +ExecCGI&lt;br /&gt;
SetHandler cgi-script&lt;/p&gt;
&lt;p&gt;注意，必须设置AllowOverride Options使这些指令生效。&lt;/p&gt;
&lt;p&gt;更详细的有关CGI编程和配置的说明，请参见CGI tutorial。&lt;br /&gt;
top&lt;br /&gt;
疑难解答&lt;/p&gt;
&lt;p&gt;如果在.htaccess文件中写入了配置指令但不起作用，可能有多种原因。&lt;/p&gt;
&lt;p&gt;最常见的原因是，AllowOverride指令没有被正确设置， 必须确保没有对此文件区域设置AllowOverride None。有一个很好的测试方法，即， 在.htaccess文件随便增加点没用的内容，如果服务器没有返回了一个错误消息， 那么几乎可以断定设置了AllowOverride None。&lt;/p&gt;
&lt;p&gt;在访问文档时，如果收到服务器的出错消息，应该检查Apache的出错日志， 可以知道.htaccess文件中哪些指令是不允许使用的，也可能会发现需要纠正的语法错误。&lt;br /&gt;
.htaccess文件使用手册&lt;/p&gt;
&lt;p&gt;- .htaccess文件(或者&amp;#8221;分布式配置文件&amp;#8221;提供了针对目录改变配置的方法， 即，在一个特定的文档目录中放置一个包含一个或多个指令的文件，以作用于此目录及其所有子目录。作为用户，所能使用的命令受到限制。管理员可以通过 Apache的AllowOverride指令来设置。&lt;/p&gt;
&lt;p&gt;- 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。&lt;/p&gt;
&lt;p&gt;- .htaccess必须以ASCII模式上传，最好将其权限设置为644。&lt;/p&gt;
&lt;p&gt;错误文档的定位&lt;/p&gt;
&lt;p&gt;常用的客户端请求错误返回代码：&lt;br /&gt;
401 Authorization Required&lt;br /&gt;
403 Forbidden&lt;br /&gt;
404 Not Found&lt;br /&gt;
405 Method Not Allowed&lt;br /&gt;
408 Request Timed Out&lt;br /&gt;
411 Content Length Required&lt;br /&gt;
412 Precondition Failed&lt;br /&gt;
413 Request Entity Too Long&lt;br /&gt;
414 Request URI Too Long&lt;br /&gt;
415 Unsupported Media Type&lt;br /&gt;
常见的服务器错误返回代码：&lt;br /&gt;
500 Internal Server Error&lt;/p&gt;
&lt;p&gt;用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下，人们可以专门设立一个目录，例如errors放置这些页面。然后再.htaccess中，加入如下的指令：&lt;/p&gt;
&lt;p&gt;ErrorDocument 404 /errors/notfound.html&lt;br /&gt;
ErrorDocument 500 /errors/internalerror.html&lt;/p&gt;
&lt;p&gt;一条指令一行。上述第一条指令的意思是对于404，也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为：&lt;/p&gt;
&lt;p&gt;ErrorDocument 错误代码 /目录名/文件名.扩展名&lt;/p&gt;
&lt;p&gt;如果所需要提示的信息很少的话，不必专门制作页面，直接在指令中使用HTML号了，例如下面这个例子：&lt;/p&gt;
&lt;p&gt;ErrorDocument 401 &amp;#8220;&amp;lt;body bgcolor=#ffffff&amp;gt;&amp;lt;h1&amp;gt;你没有权限访问该页面，请放弃！&amp;lt;/h1&amp;gt;&amp;lt;/body&amp;gt;&amp;#8221;&lt;/p&gt;
&lt;p&gt;文档访问的密码保护&lt;/p&gt;
&lt;p&gt;要利用.htaccess对某个目录下的文档设定访问用户和对应的密码，首先要做的是生成一个.htpasswd的文本文档，例如：&lt;/p&gt;
&lt;p&gt;zheng:y4E7Ep8e7EYV&lt;/p&gt;
&lt;p&gt;这里密码经过加密，用户可以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下，建议放在www根目录文档之外，这样更为安全些。&lt;/p&gt;
&lt;p&gt;有了授权用户文档，可以在.htaccess中加入如下指令了：&lt;/p&gt;
&lt;p&gt;AuthUserFile .htpasswd的服务器目录&lt;br /&gt;
AuthGroupFile /dev/null （需要授权访问的目录）&lt;br /&gt;
AuthName EnterPassword&lt;br /&gt;
AuthType Basic （授权类型）&lt;/p&gt;
&lt;p&gt;require user wsabstract （允许访问的用户，如果希望表中所有用户都允许，可以使用 require valid-user）&lt;/p&gt;
&lt;p&gt;注，括号部分为学习时候自己添加的注释&lt;/p&gt;
&lt;p&gt;拒绝来自某个IP的访问&lt;/p&gt;
&lt;p&gt;如果我不想某个政府部门访问到我的站点的内容，那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。&lt;/p&gt;
&lt;p&gt;例如：&lt;br /&gt;
order allow,deny&lt;br /&gt;
deny from 210.10.56.32&lt;br /&gt;
deny from 219.5.45.&lt;br /&gt;
allow from all&lt;/p&gt;
&lt;p&gt;第二行拒绝某个IP，第三行拒绝某个IP段，也就是219.5.45.0~219.2.45.255&lt;/p&gt;
&lt;p&gt;想要拒绝所有人？用deny from all好了。不止用IP，也可以用域名来设定。&lt;/p&gt;
&lt;p&gt;保护.htaccess文档&lt;/p&gt;
&lt;p&gt;在使用.htaccess来设置目录的密码保护时，它包含了密码文件的路径。从安全考虑，有必要把.htaccess也保护起来，不让别人看到其中的内容。虽然可以用其他方式做到这点，比如文档的权限。不过，.htaccess本身也能做到，只需加入如下的指令：&lt;/p&gt;
&lt;p&gt;&amp;lt;Files .htaccess&amp;gt;&lt;br /&gt;
order allow,deny&lt;br /&gt;
deny from all&lt;br /&gt;
&amp;lt;/Files&amp;gt;&lt;/p&gt;
&lt;p&gt;URL转向&lt;/p&gt;
&lt;p&gt;我们可能对网站进行重新规划，将文档进行了迁移，或者更改了目录。这时候，来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下，可以通过如下指令来完成旧的URL自动转向到新的地址：&lt;/p&gt;
&lt;p&gt;Redirect /旧目录/旧文档名 新文档的地址&lt;/p&gt;
&lt;p&gt;或者整个目录的转向：&lt;/p&gt;
&lt;p&gt;Redirect 旧目录 新目录&lt;/p&gt;
&lt;p&gt;改变缺省的首页文件&lt;/p&gt;
&lt;p&gt;一般情况下缺省的首页文件名有default、index等。不过，有些时候目录中没有缺省文件，而是某个特定的文件名，比如在pmwiki中是pmwiki.php。这种情况下，要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名：&lt;/p&gt;
&lt;p&gt;DirectoryIndex 新的缺省文件名&lt;/p&gt;
&lt;p&gt;也可以列出多个，顺序表明它们之间的优先级别，例如：&lt;/p&gt;
&lt;p&gt;DirectoryIndex filename.html index.cgi index.pl default.htm&lt;/p&gt;
&lt;p&gt;防止盗链&lt;/p&gt;
&lt;p&gt;如果不喜欢别人在他们的网页上连接自己的图片、文档的话，也可以通过htaccess的指令来做到。&lt;/p&gt;
&lt;p&gt;所需要的指令如下：&lt;/p&gt;
&lt;p&gt;RewriteEngine on&lt;br /&gt;
RewriteCond % !^$&lt;br /&gt;
RewriteCond % !^[url]http://(www/.)?mydomain.com/.[/url]*$ [NC]&lt;br /&gt;
RewriteRule \.(gif|jpg)$ - [F]&lt;/p&gt;
&lt;p&gt;如果觉得让别人的页面开个天窗不好看，那可以用一张图片来代替：&lt;/p&gt;
&lt;p&gt;RewriteEngine on&lt;br /&gt;
RewriteCond % !^$&lt;br /&gt;
RewriteCond % !^[url]http://(www/.)?mydomain.com/.[/url]*$ [NC]&lt;br /&gt;
RewriteRule \.(gif|jpg)$ [url]http://www.mydomain.com/[/url]替代图片文件名 [R,L]&lt;br /&gt;
- .htaccess文件(或者&amp;#8221;分布式配置文件&amp;#8221;提供了针对目录改变配置的方法， 即，在一个特定的文档目录中放置一个包含一个或多个指令的文件， 以作用于此目录及其所有子目录。作为用户，所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。&lt;/p&gt;
&lt;p&gt;- 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。&lt;/p&gt;
&lt;p&gt;- .htaccess必须以ASCII模式上传，最好将其权限设置为644。&lt;/p&gt;
&lt;p&gt;错误文档的定位&lt;/p&gt;
&lt;p&gt;常用的客户端请求错误返回代码：&lt;br /&gt;
401 Authorization Required&lt;br /&gt;
403 Forbidden&lt;br /&gt;
404 Not Found&lt;br /&gt;
405 Method Not Allowed&lt;br /&gt;
408 Request Timed Out&lt;br /&gt;
411 Content Length Required&lt;br /&gt;
412 Precondition Failed&lt;br /&gt;
413 Request Entity Too Long&lt;br /&gt;
414 Request URI Too Long&lt;br /&gt;
415 Unsupported Media Type&lt;br /&gt;
常见的服务器错误返回代码：&lt;br /&gt;
500 Internal Server Error&lt;/p&gt;
&lt;p&gt;用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下，人们可以专门设立一个目录，例如errors放置这些页面。然后再.htaccess中，加入如下的指令：&lt;/p&gt;
&lt;p&gt;ErrorDocument 404 /errors/notfound.html&lt;br /&gt;
ErrorDocument 500 /errors/internalerror.html&lt;/p&gt;
&lt;p&gt;一条指令一行。上述第一条指令的意思是对于404，也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为：&lt;/p&gt;
&lt;p&gt;ErrorDocument 错误代码 /目录名/文件名.扩展名&lt;/p&gt;
&lt;p&gt;如果所需要提示的信息很少的话，不必专门制作页面，直接在指令中使用HTML号了，例如下面这个例子：&lt;/p&gt;
&lt;p&gt;ErrorDocument 401 &amp;#8220;&amp;lt;body bgcolor=#ffffff&amp;gt;&amp;lt;h1&amp;gt;你没有权限访问该页面，请放弃！&amp;lt;/h1&amp;gt;&amp;lt;/body&amp;gt;&amp;#8221;&lt;/p&gt;
&lt;p&gt;文档访问的密码保护&lt;/p&gt;
&lt;p&gt;要利用.htaccess对某个目录下的文档设定访问用户和对应的密码，首先要做的是生成一个.htpasswd的文本文档，例如：&lt;/p&gt;
&lt;p&gt;zheng:y4E7Ep8e7EYV&lt;/p&gt;
&lt;p&gt;这里密码经过加密，用户可以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下，建议放在www根目录文档之外，这样更为安全些。&lt;/p&gt;
&lt;p&gt;有了授权用户文档，可以在.htaccess中加入如下指令了：&lt;/p&gt;
&lt;p&gt;AuthUserFile .htpasswd的服务器目录&lt;br /&gt;
AuthGroupFile /dev/null （需要授权访问的目录）&lt;br /&gt;
AuthName EnterPassword&lt;br /&gt;
AuthType Basic （授权类型）&lt;/p&gt;
&lt;p&gt;require user wsabstract （允许访问的用户，如果希望表中所有用户都允许，可以使用 require valid-user）&lt;/p&gt;
&lt;p&gt;注，括号部分为学习时候自己添加的注释&lt;/p&gt;
&lt;p&gt;拒绝来自某个IP的访问&lt;/p&gt;
&lt;p&gt;如果我不想某个政府部门访问到我的站点的内容，那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。&lt;/p&gt;
&lt;p&gt;例如：&lt;br /&gt;
order allow,deny&lt;br /&gt;
deny from 210.10.56.32&lt;br /&gt;
deny from 219.5.45.&lt;br /&gt;
allow from all&lt;/p&gt;
&lt;p&gt;第二行拒绝某个IP，第三行拒绝某个IP段，也就是219.5.45.0~219.2.45.255&lt;/p&gt;
&lt;p&gt;想要拒绝所有人？用deny from all好了。不止用IP，也可以用域名来设定。&lt;/p&gt;
&lt;p&gt;保护.htaccess文档&lt;/p&gt;
&lt;p&gt;在使用.htaccess来设置目录的密码保护时，它包含了密码文件的路径。从安全考虑，有必要把.htaccess也保护起来，不让别人看到其中的内容。虽然可以用其他方式做到这点，比如文档的权限。不过，.htaccess本身也能做到，只需加入如下的指令：&lt;/p&gt;
&lt;p&gt;&amp;lt;Files .htaccess&amp;gt;&lt;br /&gt;
order allow,deny&lt;br /&gt;
deny from all&lt;br /&gt;
&amp;lt;/Files&amp;gt;&lt;/p&gt;
&lt;p&gt;URL转向&lt;/p&gt;
&lt;p&gt;我们可能对网站进行重新规划，将文档进行了迁移，或者更改了目录。这时候，来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下，可以通过如下指令来完成旧的URL自动转向到新的地址：&lt;/p&gt;
&lt;p&gt;Redirect /旧目录/旧文档名 新文档的地址&lt;/p&gt;
&lt;p&gt;或者整个目录的转向：&lt;/p&gt;
&lt;p&gt;Redirect 旧目录 新目录&lt;/p&gt;
&lt;p&gt;改变缺省的首页文件&lt;/p&gt;
&lt;p&gt;一般情况下缺省的首页文件名有default、index等。不过，有些时候目录中没有缺省文件，而是某个特定的文件名，比如在pmwiki中是pmwiki.php。这种情况下，要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名：&lt;/p&gt;
&lt;p&gt;DirectoryIndex 新的缺省文件名&lt;/p&gt;
&lt;p&gt;也可以列出多个，顺序表明它们之间的优先级别，例如：&lt;/p&gt;
&lt;p&gt;DirectoryIndex filename.html index.cgi index.pl default.htm&lt;/p&gt;
&lt;p&gt;防止盗链&lt;/p&gt;
&lt;p&gt;如果不喜欢别人在他们的网页上连接自己的图片、文档的话，也可以通过htaccess的指令来做到。&lt;/p&gt;
&lt;p&gt;所需要的指令如下：&lt;/p&gt;
&lt;p&gt;RewriteEngine on&lt;br /&gt;
RewriteCond % !^$&lt;br /&gt;
RewriteCond % !^[url]http://(www/.)?mydomain.com/.[/url]*$ [NC]&lt;br /&gt;
RewriteRule \.(gif|jpg)$ - [F]&lt;/p&gt;
&lt;p&gt;如果觉得让别人的页面开个天窗不好看，那可以用一张图片来代替：&lt;/p&gt;
&lt;p&gt;RewriteEngine on&lt;br /&gt;
RewriteCond % !^$&lt;br /&gt;
RewriteCond % !^[url]http://(www/.)?mydomain.com/.[/url]*$ [NC]&lt;br /&gt;
RewriteRule \.(gif|jpg)$ [url]http://www.mydomain.com/[/url]替代图片文件名 [R,L]&lt;/p&gt;
&lt;p&gt;一. 自定义404,401,等错误&lt;br /&gt;
1.&lt;br /&gt;
首先建立一个名为: .htaccess&lt;br /&gt;
写入以下内容&lt;br /&gt;
ErrorDocument 401 /err401.html&lt;br /&gt;
ErrorDocument 402 /err402.html&lt;br /&gt;
ErrorDocument 403 /err403.html&lt;br /&gt;
ErrorDocument 404 /err404.html&lt;/p&gt;
&lt;p&gt;其中,401,402,403,404代表错误类型,&lt;br /&gt;
后面的err401.html代表其相对应的页面,&lt;/p&gt;
&lt;p&gt;2.&lt;br /&gt;
分别建立名字为:&lt;br /&gt;
err401.html,err402.html&amp;#8230;&amp;#8230;&amp;#8230;&lt;br /&gt;
的文件,当出现对应的错误的时候,&lt;br /&gt;
就会指向对面的页面&lt;/p&gt;
&lt;p&gt;3.&lt;br /&gt;
传到根目录下,&lt;br /&gt;
也就是 public_html 目录下&lt;br /&gt;
一切就OK了&lt;br /&gt;
二. 去掉广告&lt;br /&gt;
建个文件名 .htaccess 的文件, 文件内容如下:&lt;br /&gt;
LayoutIgnoreURI *.php&lt;br /&gt;
LayoutIgnoreURI *.cgi&lt;br /&gt;
LayoutIgnoreURI *.htm&lt;br /&gt;
LayoutIgnoreURI *.html&lt;/p&gt;
&lt;p&gt;将 .htaccess 上传至空间的 Public_html 目录下,即可去掉广告!&lt;/p&gt;
&lt;p&gt;注意 *.* 这里..想去那种扩展名的文件,就写上那种文件的扩展名!&lt;br /&gt;
这个是最简单的方法，只要在根目录加这个文件，那么整个网站都不会有广告!&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=16</wfw:commentRss><description>.htaccess 会降低APACHE的性能，除非你对目录权限要求很高或需要做UrlRewrite，否则不推荐你使用.
如果你的服务器目录结构是这样：
/usr/corsak/wwwroot/www/maindir
如果Apache指令中开启了AllowOverride支持.htaccess文件，每访问一次会依次搜索：
/usr/corsak/wwwroot/www/maindir/.htaccess
/usr/corsak/wwwroot/www/.htaccess
/usr/corsak/wwwroot/.htaccess
下面是一份详细的文档，不知道哪年从哪找的。
因为在一个国外的空间的根文件夹下看到这个.htaccess,搞不懂是干什么的,在落伍论坛找到一篇文章,先转过来放着,以后再慢慢研究,嘿嘿..
Apache指南: .htaccess文件
.htaccess文件提供了针对目录改变配置的方法。
* .htaccess文件
* 工作原理和使用方法
* 使用.htaccess文件的场合
* 指令的生效
* 认证举例
* 服务器端包含举例
* CGI举例
* 疑难解答
top
.htaccess文件
相关模块     相关指令
* core
* mod_auth
* mod_cgi
* mod_include
* mod_mime
* AccessFileName
* AllowOverride
* Options
* AddHandler
* SetHandler
* AuthType
* AuthName
* AuthUserFile
* AuthGroupFile
* Require
top
工作原理和使用方法
.htaccess文件(或者&amp;#8221;分布式配置文件&amp;#8221;提供了针对目录改变配置的方法， 即，在一个特定的文档目录中放置一个包含一个或多个指令的文件， 以作用于此目录及其所有子目录。
说明：如果需要使用.htaccess以外的其他文件名，可以用AccessFileName指令来改变。 例如，需要使用.config，则可以在服务器配置文件中按以下方法配置：
AccessFileName .config
允许放在这些文件中的指令取决于AllowOverride指令， 此指令按类别决定了.htaccess文件中哪些指令才是有效的。 如果一个指令允许放在.htaccess文件中，则，在本手册的说明中，此指令会有一个覆盖段， 其中说明了为使此指令生效而必须在AllowOverride指令中设置的值。
例如，本手册对AddDefaultCharset指令的说明表明了， 此指令可以用于.htaccess文件(见 Context一行)，而Override一行是&amp;#8221;FileInfo&amp;#8221;， 那么为使.htaccess中的此指令有效，则至少要设置&amp;#8221;AllowOverride FileInfo&amp;#8221;。
例子:
Context:     server config, virtual host, directory, .htaccess
Override:     FileInfo
如果不能确定一个特定的指令是否允许用于.htaccess文件， 可以查阅手册中对指令的说明，看在Context(“上下文”)行中是否有&amp;#8221;.htaccess.&amp;#8221;。
top
使用.htaccess文件的场合
一般情况下，不应该使用.htaccess文件，除非你对主服务器配置文件没有存取权限。 有一种很常见的误解，认为用户认证只能通过.htaccess文件实现，但并不是这样， 把用户认证写在主服务器配置中是完全可行的，而且是一种很好的方法。
在内容提供者需要针对目录改变服务器的配置而对服务器系统没有root权限时， 则应该使用.htaccess文件。如果服务器管理员不愿意频繁修改配置， 则可以允许用户通过.htaccess文件自己修改配置，尤其是ISP在一个机器上 宿主多个用户站点，而又希望用户可以自己改变配置的情况下。
虽然如此，一般都应该尽可能地避免使用.htaccess文件。 任何希望放在.htaccess文件中的配置，都可以放在主服务器的&amp;#60;Directory&amp;#62;段中，而且更高效。
避免使用.htaccess文件有两个主要原因。
首先是性能。 如果AllowOverride允许使用.htaccess文件， 则，Apache需要在每个目录中查找.htaccess文件，因此，无论是否真正用到， 允许使用.htaccess文件都会导致性能的下降。 [...]</description><category>apache</category><category>htaccess</category><pubDate>Sun, 27 Apr 2008 14:30:58 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=16#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=16</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=16</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/72612363/4278056</fs:itemid></item><item><title>配置.htaccess 替换index文件</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/72612364/4278056/1/item.html</link><content:encoded>&lt;p&gt;改变缺省的首页文件&lt;/p&gt;
&lt;p&gt;一般情况下缺省的首页文件名有default、index等。不过，有些时候目录中没有缺省文件，而&lt;/p&gt;
&lt;p&gt;是某个特定的文件名，比如在w3sky中是 w3sky.php。这种情况下，要用户记住文件名来访问很麻烦&lt;/p&gt;
&lt;p&gt;。在.htaccess中可以轻易的设置新的缺省文件名：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;　　DirectoryIndex 新的缺省文件名&lt;/p&gt;
&lt;p&gt;也可以列出多个，顺序表明它们之间的优先级别，例如：&lt;/p&gt;
&lt;p&gt;DirectoryIndex filename.html index.cgi index.pl default.htm&lt;br /&gt;
也许你不想一直使用index.htm或index.html作为目录的索引文件。举例来说，如果你的站点使用&lt;/p&gt;
&lt;p&gt;PHP文件，你可能会想使用 index.php来作为该目录的索引文档。当然也不必局限于“index”文档&lt;/p&gt;
&lt;p&gt;，如果你愿意，使用.htaccess你甚至能够设置 foofoo.balh来作为你的索引文档！&lt;/p&gt;
&lt;p&gt;这些互为替换的索引文件可以排成一个列表，服务器会从左至右进行寻找，检查哪个文档在真实的&lt;/p&gt;
&lt;p&gt;目录中存在。如果一个也找不到，它将会把目录列表显示出来（除非你已经关闭了显示目录文件列&lt;/p&gt;
&lt;p&gt;表）。&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt; DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=15</wfw:commentRss><description>改变缺省的首页文件
一般情况下缺省的首页文件名有default、index等。不过，有些时候目录中没有缺省文件，而
是某个特定的文件名，比如在w3sky中是 w3sky.php。这种情况下，要用户记住文件名来访问很麻烦
。在.htaccess中可以轻易的设置新的缺省文件名：
　　DirectoryIndex 新的缺省文件名
也可以列出多个，顺序表明它们之间的优先级别，例如：
DirectoryIndex filename.html index.cgi index.pl default.htm
也许你不想一直使用index.htm或index.html作为目录的索引文件。举例来说，如果你的站点使用
PHP文件，你可能会想使用 index.php来作为该目录的索引文档。当然也不必局限于“index”文档
，如果你愿意，使用.htaccess你甚至能够设置 foofoo.balh来作为你的索引文档！
这些互为替换的索引文件可以排成一个列表，服务器会从左至右进行寻找，检查哪个文档在真实的
目录中存在。如果一个也找不到，它将会把目录列表显示出来（除非你已经关闭了显示目录文件列
表）。
 DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm</description><category>apache</category><pubDate>Sat, 26 Apr 2008 17:20:11 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=15#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=15</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=15</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/72612364/4278056</fs:itemid></item><item><title>PHP5下这样递归居然有问题？</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/72612365/4278056/1/item.html</link><content:encoded>&lt;p&gt; 原来linux 服务器php4.4没有问题。&lt;/p&gt;
&lt;p&gt;function fetchAllParentCategory($catid){&lt;br /&gt;
global $db;&lt;br /&gt;
$sqlgc = &amp;#8220;select c.id as catid,c.name from articlecategory c   left join articlecategory d on c.id = d.pid where d.id=&amp;#8221;.$catid.&amp;#8221;  group by c.id &amp;#8220;;&lt;br /&gt;
$resgc = $db-&amp;gt;query($sqlgc);&lt;br /&gt;
while($rowgc = $db-&amp;gt;fetch_array($resgc)){&lt;br /&gt;
$rowrt .= &amp;#8221; - &amp;#8220;.($rowgc[&amp;#8217;catid&amp;#8217;]);&lt;br /&gt;
$rowrt .= fetchAllParentCategory($rowgc[&amp;#8217;catid&amp;#8217;]);&lt;br /&gt;
}&lt;br /&gt;
return $rowrt;&lt;br /&gt;
}&lt;br /&gt;
可能是db object的问题？&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=14</wfw:commentRss><description> 原来linux 服务器php4.4没有问题。
function fetchAllParentCategory($catid){
global $db;
$sqlgc = &amp;#8220;select c.id as catid,c.name from articlecategory c   left join articlecategory d on c.id = d.pid where d.id=&amp;#8221;.$catid.&amp;#8221;  group by c.id &amp;#8220;;
$resgc = $db-&amp;#62;query($sqlgc);
while($rowgc = $db-&amp;#62;fetch_array($resgc)){
$rowrt .= &amp;#8221; - &amp;#8220;.($rowgc[&amp;#8217;catid&amp;#8217;]);
$rowrt .= fetchAllParentCategory($rowgc[&amp;#8217;catid&amp;#8217;]);
}
return $rowrt;
}
可能是db object的问题？</description><category>mysql</category><category>PHP</category><pubDate>Sat, 26 Apr 2008 17:12:47 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=14#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=14</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=14</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/72612365/4278056</fs:itemid></item><item><title>.htaccess 重定向页面太好用了！</title><link>http://item.feedsky.com/~feedsky/ulcmsdevlog/~6170112/72612366/4278056/1/item.html</link><content:encoded>&lt;p&gt;最近ulcms网址目录改变了，为了重定向以前的网址，&lt;/p&gt;
&lt;p&gt;在根目录 加上.htaccess文件，内容：&lt;/p&gt;
&lt;p&gt;Redirect /cms http://www.ulcms.com&lt;br /&gt;
转贴一篇:&lt;/p&gt;
&lt;p&gt;.htaccess最有用的功能之一就是将请求重定向到同站内或站外的不同文档。这在你改变了一个文件名称，但仍然想让用户用旧地址访问到它时，变的极为 有用。另一个应用（我发现的很有用的）是重定向到一个长URL，例如在我的时事通讯中，我可以使用一个很简短的URL来指向我的会员链接。以下是一个重定 向文件的例子：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt; Redirect /location/from/root/file.ext&lt;br /&gt;
http://www.amigosky.com/new/file/123.html&lt;br /&gt;
上述例子中，访问在root目录下的名为oldfile.html可以键入：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt; /oldfile.html&lt;/p&gt;
&lt;p&gt;访问一个旧次级目录中的文件可以键入：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt; /old/oldfile.html&lt;/p&gt;
&lt;p&gt;你也可以使用.htaccess重定向整个网站的目录。假如你的网站上有一个名为olddirectory的目录，并且你已经在一个新网站 http://www.amigosky.com/newdirectory/上建立了与上相同的文档，你可以将旧目录下所有的文件做一次重定向而不必一 一声明：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt; Redirect /olddirectory http://www.w3sky.com/newdirectory&lt;/p&gt;
&lt;p&gt;这样，任何指向到站点中/olddirectory目录的请求都将被重新指向新的站点，包括附加的额外URL信息。例如有人键入：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt; http://www.amigosky.com/olddirecotry/oldfiles/images/image.gif&lt;/p&gt;
&lt;p&gt;请求将被重定向到：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt; http://www.amigosky.com/newdirectory/oldfiles/images/image.gif&lt;/p&gt;
&lt;p&gt;如果正确使用，此功能将极其强大。&lt;/p&gt;
&lt;p&gt;我们可能对网站进行重新规划，将文档进行了迁移，或者更改了目录。这时候，来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下，可以通过如下指令来完成旧的URL自动转向到新的地址：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;　　Redirect /旧目录/旧文档名 新文档的地址&lt;/p&gt;
&lt;p&gt;或者整个目录的转向：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;Redirect 旧目录 新目录&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ulcms.com/devlog/?feed=rss2&amp;p=13</wfw:commentRss><description>最近ulcms网址目录改变了，为了重定向以前的网址，
在根目录 加上.htaccess文件，内容：
Redirect /cms http://www.ulcms.com
转贴一篇:
.htaccess最有用的功能之一就是将请求重定向到同站内或站外的不同文档。这在你改变了一个文件名称，但仍然想让用户用旧地址访问到它时，变的极为 有用。另一个应用（我发现的很有用的）是重定向到一个长URL，例如在我的时事通讯中，我可以使用一个很简短的URL来指向我的会员链接。以下是一个重定 向文件的例子：
 Redirect /location/from/root/file.ext
http://www.amigosky.com/new/file/123.html
上述例子中，访问在root目录下的名为oldfile.html可以键入：
 /oldfile.html
访问一个旧次级目录中的文件可以键入：
 /old/oldfile.html
你也可以使用.htaccess重定向整个网站的目录。假如你的网站上有一个名为olddirectory的目录，并且你已经在一个新网站 http://www.amigosky.com/newdirectory/上建立了与上相同的文档，你可以将旧目录下所有的文件做一次重定向而不必一 一声明：
 Redirect /olddirectory http://www.w3sky.com/newdirectory
这样，任何指向到站点中/olddirectory目录的请求都将被重新指向新的站点，包括附加的额外URL信息。例如有人键入：
 http://www.amigosky.com/olddirecotry/oldfiles/images/image.gif
请求将被重定向到：
 http://www.amigosky.com/newdirectory/oldfiles/images/image.gif
如果正确使用，此功能将极其强大。
我们可能对网站进行重新规划，将文档进行了迁移，或者更改了目录。这时候，来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下，可以通过如下指令来完成旧的URL自动转向到新的地址：
　　Redirect /旧目录/旧文档名 新文档的地址
或者整个目录的转向：
Redirect 旧目录 新目录</description><category>ULCms</category><category>htaccess</category><pubDate>Sat, 26 Apr 2008 16:43:35 +0800</pubDate><author>admin</author><comments>http://www.ulcms.com/devlog/?p=13#comments</comments><guid isPermaLink="false">http://www.ulcms.com/devlog/?p=13</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.ulcms.com/devlog/?p=13</fs:srclink><fs:srcfeed>http://www.ulcms.com/devlog/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/ulcmsdevlog/~6170112/72612366/4278056</fs:itemid></item></channel></rss>