在Nginx上配置wordpress的url rewrite规则

购买完VPS之后,安装好nginx+php+mysql之后,就可以建立自己的博客网站了,我选择的是最新发布的wordpress 3.0。

网上有很多安装nginx+php+mysql的文章,我再推荐几篇:

  1. 国内nginx的领军人物的文章:http://blog.s135.com/nginx_php_v6/

  2. http://imcat.in/teach-you-step-by-step-install-nginx-php-mysql/

  3. http://dev.ixiezi.com/189.html


成功安装之后,就可以配置nginx的url rewrite规则了,由于nginx不支持.htaccess文件,所以必须修改nginx的配置文件nginx.conf

编辑nginx.conf文件,在wordpress的server配置中添加如下配置:
if (-d $request_filename){
rewrite ^/(.*)([^/])$ $1$2/ permanent;
}
if (-f $request_filename/index.html){
rewrite (.*) $1/index.hrml break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}

放在server的配置里就是如下配置:
server
{
listen 80;
server_name lveyo.com www.lveyo.com;
#index index.php;
root /home/www/wp-blog;
location / {
index index.html index.php;
if (-d $request_filename){
rewrite ^/(.*)([^/])$ $1$2/ permanent;
}
if (-f $request_filename/index.html){
rewrite (.*) $1/index.hrml break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
}

注意:在rewrite规则中if和(之间必须要有空格,否则会报unknown directive的错误。

评论

此博客中的热门博文

SSH代理使用说明

BuyVM黑掉了

PhotonVPS的Xen VPS性能