一级域名绑定二级目录伪静态 和 二级目录wordpress伪静态规则写法

这LNMP下,原wordpress伪静态的写法:

location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}

if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}

if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
如果需要一级域名绑定到二级目录,如www.7966.org 绑定到 www.7966.org/blog这个目录,

调用上面写法就出问题了,必须写一个新的伪静态才行,很简单:
location / {
if (-f $request_filename/二级目录/index.html){
rewrite (.*) $1/二级目录/index.html break;
}
if (-f $request_filename/二级目录/index.php){
rewrite (.*) $1/二级目录/index.php;
}
if (!-f $request_filename){
rewrite (.*) /二级目录/index.php;
}
}
当出现报错,估计是rewrite写得不规范,例如:nginx: [emerg] invalid number of arguments in “rewrite” …

必须看看上面的规则是否有空格的地方没有空格这个必须注意!

 如果一级目录需要放其他东西,而二级目录放博客的话,实现wordpress伪静态,其实也很简单的

例如:www.7966.org是放置CMS,而二级目录blog放博客,且要这个博客实现伪静态的话,

调用原来的文件,会出现404的,那么需要重新建一个wordpress2.conf,内容如下
location /blog/ {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}

if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}

if (!-f $request_filename){
rewrite (.*) /blog/index.php;
}
}
这样就基本搞定了,不过不要忘记把/usr/local/nginx/conf/vhost

下面www.7966.org.conf 里面的伪静态修改为wordpress2.conf

发表评论

电子邮件地址不会被公开。 必填项已用*标注