用了云服务器有一段时间。最近给论坛开启伪静态之后发现一直在提示程序异常。
提示结果如下
代码执行漏洞
代码执行是指应用程序对传入命令的参数过滤不严导致恶意用户能控制最终执行的命令,进而入侵系统,导致严重破坏的高危漏洞。(注:若漏洞URL包含"/robots.txt/a.php","/favicon.ico/a.php" 解决方案就是 修改php.ini文件,将cgi.fix_pathinfo的值设置为0。完成后请重启PHP和NGINX(IIS)。
我就按着上述说明 把cgi.fix_pathinfo = 0 结果伪静态不能用了,费了好几天的时间才通过收集论坛里不少的大神的贴子。终于解决掉了。 今天就发一汇总过后的教程。希望各位程序猿大大们不要见笑。
1、 http://www.microsoft.com/zh-cn/download/details.aspx?id=7435下载URL重写模块2.0,如果服务器已安装,这步即可省略。
2、1、 导入伪静态规则 新建txt文本 粘贴一下文本内容,把下列文本内容当中的论坛地址修改成你的论坛地址即可。然后右键保存为.htaccess 保存类型为:所有文件,如下图(1)(2):
规则内容: - # 将 RewriteEngine 模式打开
- RewriteEngine On
- # 修改以下语句中的 domain 为你的论坛地址
- RewriteCond %{HTTP_HOST} !^www.论坛地址.com$ [NC]
- RewriteRule ^(.*)$ http://www.论坛地址.com/$1 [L,R=301]
- # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
- RewriteBase/
- # Rewrite 系统规则请勿修改
- RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1
- RewriteRule ^article-([0-9]+)\.html$ portal.php?mod=article&articleid=$1
- RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2
- RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2
- RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2
- RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2
- RewriteRule ^([a-z]+)-(.+)\.html$ $1.php?rewrite=$2
复制代码得到以下文件上传到服务器当中。
3、到要开启伪静态的网站导入 .htaccess规则,如下图。
导入之后会在论坛的根目录生成一个web.config。
4、登录后台
大功告成。
|