此乐陶网非彼乐淘网

这几天输入乐陶网,就会莫名其妙的跳出另一个只差一个的那个网站出来,想来想去也不知道到底是哪方面的问题,联通还是域名商?或者浏览器商.

这的确让人很恼火,本来打算搜一些陶瓷方面的东西,好家伙,很大几率跳出全A货的鞋子网站.乐陶网的起步时间自然是比那个网站要晚一些,但总不能因时间原因就隐晦吧,就好像你取个名字狗蛋,我养个小狗就不能叫狗蛋了.

还有输入错误地址直接跳到联通的那个挂满广告的错误页面一样,我输乐陶网,输了www.86letao.co少输入了一个m,那么铁定不是跳往乐陶网,而是跳到那个广告页.

乐陶网是中国陶瓷行业最大的网上产品营销平台,提供陶瓷、瓷砖、卫浴、洁具、原料设备等企业供求商机发布的电子商务平台,
为陶瓷企业及经销商提供专业买卖信息对接及贸易撮合,是陶瓷企业开展网上贸易的首选平台。

zend studio 移除多余工作空间 delete workspace

翻遍了google也没找到在哪里更改,

倒是可以在电脑中找到文件夹删掉,但是选择工作空间的时候还是出现了其他不需要的工作空间,而且只要有这几个workspace,那么选择后就会自动生成.metadata和RemoteSystemsTempFiles文件.这并不是我想要的,

那么到底怎么删掉不想要的空间呢.

找到

Zend Studio – 8.0.0\configuration\.settings\org.eclipse.ui.ide.prefs

找到:

在RECENT_WORKSPACES=F\:\\qingfeng\nD\:\\vhost

删除不需要的就可以了

.htaccess 16个非常有用的小技巧

文章是个老文章,话题是个老话题,但是对于PHP coder来说,还是有必要保留的文章.希望对有需要的人有帮助.

.htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能。.htaccess 配置文件坚持了Unix的一个文化——使用一个ASCII 的纯文本文件来配置你的网站的访问策略。

这篇文章包括了16个非常有用的小技巧。另外,因为.htaccess 是一个相当强大的配置文件,所以,一个轻微的语法错误会造成你整个网站的故障,所以,在你修改或是替换原有的文件时,一定要备份旧的文件,以便出现问题的时候可以方便的恢复。

1. 使用.htaccess 创建自定义的出错页面。对于Linux Apache来说这是一项极其简单的事情。使用下面的.htaccess语法你可以轻松的完成这一功能。(把.htaccess放在你的网站根目录下)

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

2. 设置网站的时区

SetEnv TZ America/Houston

3. 阻止IP列表
有些时候,你需要以IP地址的方式阻止一些访问。无论是对于一个IP地址还是一个网段,这都是一件非常简单的事情,如下所示:

allow from all
deny from 145.186.14.122
deny from 124.15

Apache对于被拒绝的IP会返回403错误。

4. 把一些老的链接转到新的链接上——搜索引擎优化SEO

Redirect 301 /d/file.html http://www.htaccesselite.com/r/file.html

5. 为服务器管理员设置电子邮件。

ServerSignature EMail
SetEnv SERVER_ADMIN default@domain.com

6. 使用.htaccess 访止盗链。如果你网站上的一个图片被别的N多的网站引用了,那么,这很有可能会导致你服务器的性能下降,使用下面的代码可以保护某些热门的链接不被过多的引用。

Options +FollowSymlinks
# Protect Hotlinking
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/hotlink_f_o.png [nc]

7. 阻止 User Agent 的所有请求

## .htaccess Code :: BEGIN
## Block Bad Bots by user-Agent
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]

Order Allow,Deny
Allow from all
Deny from env=bad_bot

## .htaccess Code :: END

8. 把某些特殊的IP地址的请求重定向到别的站点

ErrorDocument 403 http://www.youdomain.com
Order deny,allow
Deny from all
Allow from ip
Allow from ip

9. 直接找开文件而不是下载 – 通常,我们打开网上文件的时候总是会出现一个对话框问我们是下载还是直接打开,使用下面的设置就不会出现这个问题了,直接打开

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

10. 修改文件类型 – 下面的示例可以让任何的文件都成为PHP那么被服务器解释。比如:myphp, cgi,phtml等。

ForceType application/x-httpd-php
SetHandler application/x-httpd-php

11. 阻止存取.htaccess 文件

# secure htaccess file
order allow,deny
deny from all

12. 保护服务器上的文件被存取

# prevent access of a certain file order allow,deny
deny from all

13. 阻止目录浏览

# disable directory browsing
Options All -Indexes

14. 设置默认主页

# serve alternate default index page
DirectoryIndex about.html

15. 口令认证 – 你可以创建一个文件用于认证。下面是一个示例:

# to protect a file

AuthType Basic
AuthName “Prompt”
AuthUserFile /home/path/.htpasswd
Require valid-user

# password-protect a directory
resides
AuthType basic
AuthName “This directory is protected”
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user

16. 把老的域名转像新的域名

# redirect from old domain to new domain
RewriteEngine On
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]

$_SERVER 参数 示例详解

1,$_SERVER["QUERY_STRING"]
说明:查询(query)的字符串

2,$_SERVER["REQUEST_URI"]
说明:访问此页面所需的URI

3,$_SERVER["SCRIPT_NAME"]
说明:包含当前脚本的路径

4,$_SERVER["PHP_SELF"]
说明:当前正在执行脚本的文件名

实例:
1,http://www.biuuu.com/ (直接打开主页)
结果:
$_SERVER["QUERY_STRING"] = “”
$_SERVER["REQUEST_URI"] = “/”
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"]     = “/index.php”

2,http://www.biuuu.com/?p=222 (附带查询)
结果:
$_SERVER["QUERY_STRING"] = “p=222″
$_SERVER["REQUEST_URI"] = “/?p=222″
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"]     = “/index.php”

3,http://www.biuuu.com/index.php?p=222&q=biuuu
结果:
$_SERVER["QUERY_STRING"] = “p=222&q=biuuu”
$_SERVER["REQUEST_URI"] = “/index.php?p=222&q=biuuu”
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"]     = “/index.php”

$_SERVER["QUERY_STRING"]获取查询语句,实例中可知,获取的是?后面的值
$_SERVER["REQUEST_URI"] 获取http://www.biuuu.com后面的值,包括/
$_SERVER["SCRIPT_NAME"] 获取当前脚本的路径,如:index.php
$_SERVER["PHP_SELF"] 当前正在执行脚本的文件名
当前url:”http://”.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']

总结一下,对于QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF,深入了解将有利于我们 在$_SERVER函数中正确调用这四个值。通过实例详解$_SERVER函数中 QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF掌握四个变量之间的区别。

1.

$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言

显示:zh-cn

2.

$_SERVER['REMOTE_ADDR'] //当前用户 IP 。

显示:127.0.0.1

3.

$_SERVER['REMOTE_HOST'] //当前用户主机名

显示:

4

$_SERVER['REQUEST_URI'] //URL

显示:/test.php

5

$_SERVER['REMOTE_PORT'] //端口。

显示:3864

6

$_SERVER['SERVER_NAME'] //服务器主机的名称。

显示:127.0.0.1

7

$_SERVER['PHP_SELF']//正在执行脚本的文件名

显示:/test.php

8

$_SERVER['argv'] //传递给该脚本的参数。

显示:ARRAY

9

$_SERVER['argc'] //传递给程序的命令行参数的个数。

显示:0

10

$_SERVER['GATEWAY_INTERFACE']//CGI 规范的版本。

显示: CGI/1.1

11

$_SERVER['SERVER_SOFTWARE'] //服务器标识的字串

显示:Apache/2.0.52 (Win32) PHP/5.2.1

12

$_SERVER['SERVER_PROTOCOL'] //请求页面时通信协议的名称和版本

显示:HTTP/1.1

13

$_SERVER['REQUEST_METHOD']//访问页面时的请求方法

显示:GET

14

$_SERVER['QUERY_STRING'] //查询(query)的字符串。

显示:

15

$_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录

显示:D:/Program Files/Apache/www

16

$_SERVER['HTTP_ACCEPT'] //当前请求的 Accept: 头部的内容。

显示:*/*

17

$_SERVER['HTTP_ACCEPT_CHARSET'] //当前请求的 Accept-Charset: 头部的内容。

显示:

18

$_SERVER['HTTP_ACCEPT_ENCODING'] //当前请求的 Accept-Encoding: 头部的内容

显示:gzip,deflate

19

$_SERVER['HTTP_CONNECTION'] //当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。

显示:Keep-Alive

20

$_SERVER['HTTP_HOST'] //当前请求的 Host: 头部的内容。

显示:127.0.0.1:8080

21

$_SERVER['HTTP_REFERER'] //链接到当前页面的前一页面的 URL 地址。

显示:http://127.0.0.1:8080/

22

$_SERVER['HTTP_USER_AGENT'] //当前请求的 User_Agent: 头部的内容。

显示:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

23

$_SERVER['HTTPS']//如果通过https访问,则被设为一个非空的值(on),否则返回off

显示:

24

$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。

显示:D:/Program Files/Apache/www/test.php

25

$_SERVER['SERVER_ADMIN'] #管理员信息

显示:w@w.com

26

$_SERVER['SERVER_PORT'] #服务器所使用的端口

显示:8080

27

$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。

显示:Apache/2.0.52 (Win32) PHP/5.2.1 Server at 10.145.40.150 Port 8080

28

$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。

显示:

29

$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。

显示 :/test.php

30

$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。

显示:

31

$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。

显示:

32

$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型

显示:

例子:

htaccess的301跳转

前提:

服务器为apache,并在httpd.conf文件中修改一下两个地方:

1.去掉下面的注释
LoadModule rewrite_module modules/mod_rewrite.so

2.开启FollowSymLinks

Options FollowSymLinks
AllowOverride None

改为
Options FollowSymLinks
AllowOverride All

具体写法:

1.重定向domain.com到www.domain.com

这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.domain.com到domain.com也是出于同样的原因,只是形式不同。打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

2.重定向www.domain.com到domain.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

3.重定向olddomain.com到www.newdomain.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]

4.重定向olddomain.com to newdomain.com

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

5.重定向domain.com/file/file.php 到 otherdomain.com/otherfile/other.php

RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]

jQuery.autocomplete() not a function

我使用的jquery的atuocomplete出现了一个jQuery.autocomplete() not a function ,autocomplete非函数的问题.

我的源码:

// 搜索的自动完成
if($(“#kw”).size() && categories){
$(“head”).append($(“<link rel=’stylesheet’ type=’text/css’ href=’”+baseUrl+”js/jquery.ui.autocomplete.css’ />”))
.append($(“<script src=’”+baseUrl+”js/jquery.ui.core.min.js’></script>”))
.append($(“<script src=’”+baseUrl+”js/jquery.ui.widget.min.js’></script>”))
.append($(“<script src=’”+baseUrl+”js/jquery.ui.position.min.js’></script>”))
.append($(“<script src=’”+baseUrl+”js/jquery.ui.autocomplete.min.js’></script>”));
$(“#kw”).autocomplete({source: categories});

}

问题描述:

jQuery.autocomplete() not a function ,autocomplete非函数

在本地测试成功,放到服务器就失败.

域名带www则成功,不带www则失败.

问题原因:

调用autocomplete()函数时,autocomplete.min.js等JS并未完全加载完成,它的加载默认为ajax加载.

同时,带www和不带www的ajax调用十分不同,可以说不到www的为非正规写法,ajax调取会失败.

解决方法:

方式一.直接把jQuery.autocomplete()使用到的css和js,写到<head>中.

方式二.使用js状态码来判断ajax是否完成,然后调用autocomplete()

方式三.对页面进行301重定向到含有www的页面.

移动文件或文件夹出错

fat32文件系统(server2003,NT4-)下载和移动超过2G文件,出现错误.

因为windows FAT32文件系统不支持移动超过2G的文件,即使要移动文件的目标硬盘容量有很大,也不行,会抛出一个参数错误的系统错误.

解决的方法:

使用windows命令,将FAT32文件系统转成NTFS文件系统就可以了.

如:想把F盘转为NTFS文件系统,就需要进行在运行中输入这个命令:

convert f:/fs:ntfs /v

对于enozoom的更新说明

对于当前情况来看,盲目的进行升级,必然会对一些希望在技术集得到帮助的CODER造成一些404.

这个是我不想看到的,再三考虑后,决定,还是通过正常的更新来过渡这次升级,当然时间自然就慢的多.

从上次的病毒事件,到现在三个整月,网站基本没有更新,在SEO上也被降级处理.这是都是个人能力有限造成的.

现在网络重叠和过时的技术文章过多,可以说充斥了将近90%的网络,很少见到合适的技术资料.这就是enozoom studio 技术集以后要做的事情,精挑细选,去伪存真.

enozoom studio 即将在9月份全面改版,enocms版本将从0.2直接升级到3.0.1

本次改版内容如下:

1.整体内容不会变化,栏目不会减少,音乐不在提供在线试听.

2.在音乐栏目将改为视听,为影视和音乐分析.

3.整体风格变为蓝色.

4.不在支持低于IE9的浏览器,即不支持 那些未支持CSS3以及html5的浏览器,建议浏览器为ie9,ff,chrome.

5.网站框架使用zend framework1.11,并会逐步推出网站开发过程文章,在文章完成后,提供整站下载.

6.感谢您对ENOZOOM STUDIO的关注!

facebox中使用datepicker时无效

facebox的确是个很经典的弹出效果。

我在做一个综合查询的facebox效果的form,里面有jquery的datepicker插件。很不幸,datepicker在里面失效了。

最初我以为是因为这个facebox的div的样式是display:none的原因,可结果仍然不对,于是我采用了一个很笨的方法,就是在使用datepicker的input中加入onclick事件,就像这样:
<input type=’text’ class=’datepicker’ onlick=’$(this).datepicker()’ />
貌似这样是可以了,但是响应很慢,需要点击N下input,datepicker才能弹出来,根本不是我想要的效果。

google给出的搜索答案:

// 原来的代码
$(funciton(){
$(‘.datepicker’).datepicker({ dateFormat:’yy-mm-dd’ });
})

// 解决后的代码
$(document).bind(‘reveal.facebox’, function() {
$(‘.datepicker’).datepicker({ dateFormat:’yy-mm-dd’ });
})

有没有看出些什么?嗯,原因出在facebox上面。