Internal Server Error错误和.htaccess伪静态的关系
更新:2021-03-08 15:50:51
人气:105
来源:本站原创
A+
最近更新PHP版本从7.3.26到7.3.27遇到的坑记录一下。
通过以往的正常方法开启了伪静态规则,访问网页时却报出下面让人头疼的错误提示:
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at admin@example.com to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log.
我确认伪静态已经启用了,因为将程序目录中只要.htaccess文件删除,网站就可以正常访问默认首页的。说明至少PHP可以正常运行,但是发现访问经过静态规则设置的其他目录却无法访问。最后经过测试,发现了问题所在,就是自己的.htaccess的写法已经与新版本的PHP不兼容了。之前在我的.htaccess文件都会写上以下代码:
<Files ~ "^.(htaccess|htpasswd)$"> deny from all </Files> order deny,allow RewriteEngine on
这就是造成显示错误的原因,因为在httpd.conf文件中有一段代码:
<Files ".ht*"> Require all denied </Files>
这个其实已经实现了拒绝他人访问.ht开头的文件,已经有保护作用了。所以修改自己的.htaccess文件,只保留了如下代码:
RewriteEngine on
再刷新网站,已经可以正常访问了。同时还应该注意一下,有如下正则的代码也要一并去掉,否则和上面的错误一样。所以遇到上面的错误,先把.htaccess拿掉再看,逐步缩小错误范围。
<Files ~ ".(sql|rar)$"> order deny,allow deny from all allow from 10.64.10.17 allow from 10.64.10.251 </Files>
推荐的文章
Ads by Google
随手记
- ● Mysql的Sql_mode设置(Incorrectdatetimevalue:'0000-00-0000:00:00'forcolumn)
- ● js实时动态显示PHP服务器时间且不用Ajax循环查询获取的方法
- ● Google谷歌访问助手百度云分享下载及安装方法说明
- ● jQuery实现页面中表格数据的搜索
- ● PHP如何获取指定网址的header头信息及隐藏关闭的方法
- ● 去掉EasyPlayer播放器水印LOGO“tsingsee”的方法
- ● easy-player-element.min.js使用示例及百度云盘下载
- ● html使用EasyWasmPlayer.js示例方法及百度网盘下载地址
- ● 谷歌广告联盟(GoogleAdsense)申请通过了,可服务器在哪?
- ● PHP支持的版本及各版本最终支持时间
PHP经验分享
- ● PHP允许JS(xmlHttp)、AJAX跨域的设置方法
- ● php远程网络唤醒计算机及WOL唤醒魔术包格式原理
- ● FatalErrorBaseaddressmarksunusablememoryregion解决办法
- ● 关于PHP7不支持curl的解决方法
- ● PHP在浏览器中发出CMD指令执行Windows电脑关机、重启
- ● PHP接收$_POST表单值为字符串或数组时,对安全转义的处理函数
- ● PHP+MYSQL多个字段插入或修改数据库时的简便方法
- ● 关联数组循环输出及根据键名输出键值有用法
- ● PHP生成和识别二维码的方法详解及示例源代码【百度云下载】
- ● MySQL并发相关的参数的调整
本站PHP博客源代码下载
联系博主