这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
文章来源于网络或者作者投稿,若有侵权请联系删除,作者:老钟,如若转载,请注明出处:https://www.laoz.net/306.html