在使用蝉知cms中遇到nginx环境下伪静态无效的问题
官网说明:
http://www.chanzhi.org/cms/161.html
http://www.chanzhi.org/thread/1053.html
均无效,最后感谢蝉知技术解决了问题,放出方法,方便以后解决。
宝塔面板修复方法:
1.打开nginx下配置文件enable-php.conf
将代码中 #include pathinfo.conf; 最前面的#去掉
2.打开nginx下配置文件enable-php.conf
将#fastcgi_param PATH_INFO $path_info; 改成fastcgi_param PATH_INFO $request_uri;
3.重新加载nginx环境或重启,修复完成。
amh或者其他环境均可按照以上方法参考修改。
本人的宝塔环境下按以上方法配置都没有成功,其中enable-php.conf下根本就没有上述所说的配置。
后来在宝塔技术的帮助下,终于解决问题了。
原因:是宝塔面板nginx会自动加入一些自己的规则,只在界面上修改并不完整。直接编辑nginx vhost文件就好。
所以,修改办法是:直接编辑nginx vhost文件就好,也就是nginx配置文件,直接从宝塔后台是没有权限操作的。我是通过WinSCP,在/www/server/panel/vhost/nginx目录,找到对应网站的配置文件,加上ROOT可写权限,进行修改。
修改后的配置文件是:
server
{
listen 80;
server_name xxxxx.cn www.xxxxxx.cn;
index index.php index.html index.htm ;
root /home/*****;#这是网站根目录
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
#include enable-php-70.conf;(屏蔽)
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
#include /www/server/panel/vhost/rewrite/****.conf;(屏蔽)
#REWRITE-END
#把以下静态规则加入配置文件中。
location /
{
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$
{
fastcgi_pass unix:/tmp/php-cgi-70.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $request_uri;
include /www/server/nginx/conf/fastcgi.conf; #根据环境写上对应的路径如果是宝塔一般是这个。
}
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.project|LICENSE|README.md)
{
return 404;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$
{
expires 12h;
access_log off;
}
access_log /www/wwwlogs/*****.cn.log;
}