Codeigniter rewrite规则配置(apache)

第一步:修改apache配置文件。

DocumentRoot “E:/website”

Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

LoadModule rewrite_module modules/mod_rewrite.so

第二步:在站点根目录加.htaccess

RewriteEngine on
RewriteCond $1 !^(index.php|public|robots.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

PS:如果用了rewrite,记得过滤你图片文件夹和样式文件夹,如我的站点的图片/样式/脚本的文件夹分别为images/css/js,.htaccess文件第行的内容改为RewriteCond $1 !^(index.php|images|css|js|public|robots.txt)

Apache核心(Core)指令和区别

<Directory>和<Location>指令都是Apache配置文件httpd.conf中的常见指令,它们都能对其指定的作用域进行访问控制,区别在于<Directory>针对的是文件系统,而<Location>针对的是网络空间。

 

文件系统是指服务器所在机器上的所能看见的磁盘系统中的目录,比如Linux下的/usr/local/apache,或Windows系统中的C:/Program Files/Apache。<Directory>指令可以对真实存在于文件系统中的目录及其子目录进行访问控制,具体能进行怎样粒度的访控可以参考Apache手册的<Directory>使用说明。比如apache的DocumentRoot配置成/usr/local/www,该目录中有一个网页文件index.htm,那么以下配置代码就能阻止任何人访问www目录。
<Directory /user/local/www>
Order allow,deny
Deny from all
</Directory>
此时,如果用http://yourdomain.com/index.htm来请求index.htm文件时,Apache就会根据以上配置信息拒绝所有外来请求。这里仅仅举个例子,在实际应用中,以上配置可能没什么意义。

 

网络空间是指网站被服务器发送或者呈现在浏览器中的视图,例如有一个网页地址http://yourdomain.com/test1/index.htm,通过映射的方法,它的实际存储位置可以在服务器的/usr/local/www/test2/目录中,这个时候,想要对/test1这个网络路径进行访问控制,那么就可以配置<Location>属性。还有一种应用情况,现在很多网页是通过数据库信息动态生成的,或者用velocity这类模板引擎渲染而来,这样生成的看似静态的网页实际上并没有真实存在于服务器的文件系统中,因此对这类地址如果用<Directory>指令就无法达到期望的访问控制效果,就是说配<Directory>是不起作用的,而用<Location>指令就能达到目的。例如:
<Location /test1>
Order allow,deny
Deny from all
</Location>

以上配置能将所有发向http://yourdomain.com/test1/*的请求都拒绝。同<Directory>一样,具体能在<Location>指令中做怎样粒度的权限控制可以参考Apache手册的<Location>使用说明。

 

除此之外,Apache对于httpd.conf文件中<Directory>和<Location>(以及<Files>、<VirtualHost>)和它们各自的正则表达式版本(<DirectoryMatch>、<FilesMatch>、<LocationMatch>等)有指定的合并顺序,因此一个配置段的指令可能会被后边的配置段指令比如覆盖。这里有几个例子可以很好的说明这个情况,例如:
<Location />
Order deny,allow
Allow from all
</Location>

# 这个<Directory>段将不会实际生效
<Directory />
Order allow,deny
Allow from all
Deny from badguy.example.com
</Directory>
由于合并时处理<Directory>在先,处理<Location>在后,因此上面<Directory>配置里的Deny from badguy.example.com会被<Location>覆盖掉,这是配置httpd.conf时要注意的地方。

 

还有一点,改过Apache的httpd.conf配置文件后,必须重启Apache服务。

PHP 安装包 VC9 VC6 区别是什么

一、如何选择PHP5.3的VC9版本和VC6版本

VC6是什么?
VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。
VC9是什么?
VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。

那我们如何选择下载哪个版本的PHP呢?
如果你是在windows下使用Apache+PHP的,请选择VC6版本;
如果你是在windows下使用IIS+PHP的,请选择VC9版本。

二、如何选择PHP5.3的Thread Safe和Non Thread Safe版本
先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。

再来看PHP的两种执行方式:ISAPI和FastCGI。

ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;

而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。

官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。

Discuz X2.5 后台设置 Gmail 发送邮件

很久没有折腾Discuz了,最近朋友让我帮他搭建一个论坛,关于CSOL(Counter Strike Online)的论坛,看见和CS相关,就非常有兴趣,本人以前也是CS忠实Fans。
论坛搭建完成,设置使用Gmail邮箱,Socket方式,却不能发送邮件,很是纳闷。

经过查找,问题出现在这里:
由于Gmail走的是加密SSL验证,在设置SMTP服务器的时候,得输入ssl://smtp.gmail.com或tls://smtp.gmail.com即可。
就此问题搞定。

论坛地址:Counter Strike Online 战队论坛

iPhone4S导航凯立德V9.0

凯立德是中国GPS移动导航系统第一品牌,是目前中国市场占有率最高的导航软件。凯立德移动导航系统iPhone/iPad版不但继承了凯立德专业级的导航性能、精准的全国导航地图,同时创新推出包括声控”随意说”等多种实用功能。最新推出的凯立德路况服务,以独特的交通事件形式呈现实时路况,并将路况与导航无缝结合,帮助车主及时了解市内及城际道路上的沿途事件,让旅途一切尽在掌控!

V9.0更新概要

  • 凯立德路况服务:独特的交通事件呈现方式,以全方位视角将路况尽收眼底;
  • 2012年夏季版地图:广深沿江高速、吐和高速、广河高速等新建高速极速呈现;
  • 新增”分省地图”下载模式:地图按需选择,完美匹配存储空间;
  • 新增”K码专用键盘”:轻松秒杀K码输入。

本人使用过导航犬,高德,个人觉得导航属凯立德最给力了,定位,流畅度,提醒,查看。

使用后感:
小生之前开车,因为车上没有配备手机夹,所以在导航的时候,得拿到手上看,毕竟在上海交通还是比较复杂。
之前放在腿上定位非常快速,精准,自从升级9.0版本之后就悲剧了,放在腿上无法定位,卡死现象非常严重,毕竟让手机竖着才可以正常定位。
希望官方能快速解决这个问题。

discuz X2.5 rewrite 伪静态linux .htaccess文件设置 apache专用

# 将 RewriteEngine 模式打开
RewriteEngine On
# 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /
# Rewrite 系统规则请勿修改
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+).html$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^article-([0-9]+)-([0-9]+).html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(w+)-([0-9]+).html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ forum.php?mod=viewthread&tid=$1&extra=page%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^group-([0-9]+)-([0-9]+).html$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^space-(username|uid)-(.+).html$ home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([a-z]+)-(.+).html$ $1.php?rewrite=$2&%1