今天想把本(emlog)博客的日志链接形式变成伪静态链接形式,在后台“博客设置->固定链接”进行了设
置,改为文件形式,保存后再访问博客日志时报403,郁闷呀,接触nginx和emlog时间不长,遇到问题得
上网找找解决方案,网上相关解决方案太多了,对菜鸟的我真是棘手,不停地试他们的解决方法,试了很
长时间才找到解决方法。说明下解决方法太多了,很多人只是贴出代码,没教你怎样怎样去做才好,对刚
接触这方面知识的我,真是一头雾水呀。好了废话少说开始进入正题。
以下有两种解决方法
1.让nginx支持.htaccess。
nginx默认不支持.htaccess的,可通过nginx.conf配置文件引入.htaccess文件达到支持效果。
例如:
06 | server_name denghuafeng.com; |
07 | index index.html index.htm index.php; |
10 | include /home/www/.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,内容如下:
02 | if (!-f $request_filename){ |
05 | if (!-d $request_filename){ |
09 | rewrite ^/(post|record| sort |author|page)-([0-9]+)\.html$ /index.php?$1=$2; |
10 | rewrite ^/(post|record| sort |author|page)/([0-9]+)$ /index.php?$1=$2; |
12 | rewrite ^/tag-(.+)\.html$ /index.php?tag=$1; |
13 | rewrite ^/tag/(.+)$ /index.php?tag=$1; |
14 | rewrite ^/t/page/([0-9]+)$ /t/index.php?page=$1; |
nginx.conf中引入:
配置好后,重启nginx后可以了。
问题解决,ok了。
以下是emlog.conf和.htaccess附件。
注:如需转载,请注明出处,欢迎交流!Email:denghuafeng@live.cn
附件下载:
htaccess.rar | 257字节 | 下载: 55
emlog.conf.rar | 288字节 | 下载: 55
版权所有:邓华锋 《 解决emlog在nginx下伪静态不能使用问题》
引用地址:http://www.denghuafeng.com/tb.php?sc=e30304&id=8
站长声明:除特别标注,本站所有文章均为原创. 互联分享,尊重版权,转载注明出处