解决emlog在nginx下伪静态不能使用问题

当前位置:

解决emlog在nginx下伪静态不能使用问题

作者:邓华锋于2010-12-15发布在 分类:emlog / 阅读39516 次 / 共有1条评论  

今天想把本(emlog)博客的日志链接形式变成伪静态链接形式,在后台“博客设置->固定链接”进行了设

置,改为文件形式,保存后再访问博客日志时报403,郁闷呀,接触nginx和emlog时间不长,遇到问题得

上网找找解决方案,网上相关解决方案太多了,对菜鸟的我真是棘手,不停地试他们的解决方法,试了很

长时间才找到解决方法。说明下解决方法太多了,很多人只是贴出代码,没教你怎样怎样去做才好,对刚

接触这方面知识的我,真是一头雾水呀。好了废话少说开始进入正题。


以下有两种解决方法
1.让nginx支持.htaccess。
nginx默认不支持.htaccess的,可通过nginx.conf配置文件引入.htaccess文件达到支持效果。
例如:

http{
 ……
 server
  {
  listen       80;
  server_name denghuafeng.com;
  index index.html index.htm index.php;
  root  /home/wwwroot;
  
  include /home/www/.htaccess;#此为.htaccess文件存在的路径
                ……
           }

}

配置好后,上传到服务器,这时还需注意,在nginx下的.htaccess里伪静态规则语法结构跟一

般.htaccess文件里伪静态规则语法不一致,一般的.htaccess都是以apache为准的。在初始化安装emlog

博客后,emlog中的.htaccess伪静态规则语法默认是以apache为准,需转换成nginx下使用的伪静态规则

语法,咋转了,别费心了,推荐使用在线convert-apache-htaccess-to-nginx

http://www.anilcetin.com/convert-apache-htaccess-to-nginx/ )工具来处理。使用很简单,将

apache的.htaccess内容复制到左边文本框里,点击convert按钮,进行转换,右侧生成nginx规则的语法

,拷贝存入.htaccess中,重启nginx可以了。
2.可引入自定义emlog伪静态nginx规则的文件。
假如没有emlog.conf文件,你可在nginx配置文件夹里新建一个emlog.conf,内容如下:

location / {
              if (!-f $request_filename){
                set $rule_0 1$rule_0;
               }
              if (!-d $request_filename){
                set $rule_0 2$rule_0;
               }
              if ($rule_0 = "21"){
                rewrite ^/(post|record|sort|author|page)-([0-9]+)\.html$ /index.php?$1=$2;
                rewrite ^/(post|record|sort|author|page)/([0-9]+)$ /index.php?$1=$2;
               }
                rewrite ^/tag-(.+)\.html$ /index.php?tag=$1;
                rewrite ^/tag/(.+)$ /index.php?tag=$1;
                rewrite ^/t/page/([0-9]+)$ /t/index.php?page=$1;
            }

nginx.conf中引入:

http{
 ……
 server
  {
  ……
  include emlog.conf;
                ……
           }
}

配置好后,重启nginx后可以了。

问题解决,ok了。

以下是emlog.conf和.htaccess附件。
 注:如需转载,请注明出处,欢迎交流!Email:denghuafeng@live.cn

  • 标签: nginx 伪静态 emlog
  • 该日志于 2010-12-15 21:30 由 邓华锋 发表在 邓华锋 上,你除了可以发表评论外,还可以转载"解决emlog在nginx下伪静态不能使用问题"日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!
  • 版权所有:《邓华锋》 => 《解决emlog在nginx下伪静态不能使用问题
    本文地址:http://dhf.ink/post-8.html
    除非注明,文章均为 《邓华锋》 原创,欢迎转载!转载请注明本文地址,谢谢。

评论:

  1. 杨金祥博客于2012-03-17 22:55说: 回复

    不错真的不错