虽然用vhost可以支持子域名, 但不方便.
RewriteCond $1 !^bbs/ RewriteCond %{HTTP_HOST} bbs.example.com RewriteRule (.*) /bbs/$1 [L]
RewriteCond $1 !^bbs/ 避免内部无限redirect.
虽然用vhost可以支持子域名, 但不方便.
RewriteCond $1 !^bbs/ RewriteCond %{HTTP_HOST} bbs.example.com RewriteRule (.*) /bbs/$1 [L]
RewriteCond $1 !^bbs/ 避免内部无限redirect.
IT牛人博客聚合网站(www.udpwork.com)用到了 Apache 的 mod_rewrite 模块进行 URL 重写. 但是, 在使用过程中曾经出现过一个比较诡异的问题. 开始认为是重写规则设置得不对, 后来才发现, 是"%2F"导致 Apache 直接返回 404 错误.
比如浏览查看某个标签下的文章列表的链接为
http://www.udpwork.com/tag/Linux
在重写之前的链接是
http://www.udpwork.com/?tag=Linux
使用Ubuntu Linux, 编译过程提示缺啥补啥即可.
./configure --prefix=/home/work/httpd --enable-so --enable-rewrite --enable-vhost-alias
配置文件:
LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php # PhpIniDir /home/work/php/php.ini
AddType application/x-httpd-php .php
LoadModule php5_module D:/php5.2.5/php5apache2_2.dll
phpinidir D:/php5.2.5/
今天试用了lighttpd, Windows预编译版, 体积只有5M左右. 我用我的博客程序试了下, PHP的执行速度竟然是Apache下的10倍! 正如其名--轻快. Apache大而全, 速度自然会受影响. 不过, 这个比较是不准确的, 因为我的Apache开了mod_rewrite, mod_vhost等等模块, 而lighttpd只开了mod_access和mod_cgi.
现在,很多人都拥有自己的电脑,并且通过固定的IP连接到互联网。于是,他们开始在自己的电脑上架设服务器。
在自己的电脑上架设服务器,无论你使用Linux还是Windows,都是非常简单的。这里我只介绍Apache+PHP和Tomcat在使用过程中的问题网页乱码问题。
对于Windows系统Apache和Tomcat的安装,只需要下载安装程序就能使用了。但是,恼人的中文问题出现了:网页的中文全是乱码。用户上网搜索之后,可能得到“需要更改default_charset”为gb2312的信息。这是非常愚蠢的做法,如果你这样做了,你的网页只能使用gb2312编码或者它的子集。所以这种方法成功率非常低。于是有的人得出结论: Apache和Tomcat等都是外国人做的,所以对中文支持不好。完全的胡说。
对于Apache,请把配置文件中的AddDefaultCharset ISO-8859-1(如果默认安装后有的话) 改成 AddDefaultCharset off,而Tomcat默认安装。
然后在你写网页的时候,在<head>与</head>标签之间加上<meta http-equiv="content-type" content="text/html; charset=? />其中问号是你的HTML/PHP/JSP源文件的编码格式。我曾经遇到过一个人,因为别人举例时用gb2312代替了?,所以他也照抄gb2312,而事实上,他的文件是使用UTF-8编码格式存储的!他提出问题的时候,开始说Apache和PHP的问题,后来又说是文本编辑器的问题(为什么不把编码存为gb2312?)。对于这种人,我只能说,问题在于他连基本的 HTML文件都不会写!还有的人,根本就没有在HTML/PHP/JSP文件中加上声明编码的<meta />标签。
当然,问题还有很多。因为能力和时间关系,我就不多说了。如果你有什么建议,可能留下评论。