咨询电话:
15628812133
17
2018/05

TP5项目上传服务器后,提示File not found. 解决方案

发布时间:2018-05-17 18:49:09
发布者:pengyifeng
浏览量:
0

最近公司在新开发项目,用的是TP5的框架,开始的时候用的挺舒服,挺好用的,一直到项目在本地开发的差不多之后,开始准备放到服务器上面测试,结果上线之后,直接打不开网站,捣鼓了半天,也不知道哪里除了问题,相当的尴尬,以为是框架的问题,后来发现,跟框架没有啥关系,于是就从服务器方面找问题;

 估摸着可能是rewrite的问题。分享一下处理的流程。

 在conf目录下httpd.conf中找到

 LoadModule rewrite_module modules/mod_rewrite.so

这句,去掉前边的注释符号“#”,或添加这句。

允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
# AllowOverride All

Apache Rewrite模块的简单应用:
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。

    目的是如果请求为.php文件,则跳转至其它域名访问。

    例如:访问www.cnwenhui.cn/a.php跳转至b.cnwenhui.cn/b.php网页,访问www.cnwenhui.cn/news/index.php跳转至b.cnwenhui.cn/news/index.php网页.注意:不是使用HTML技术中的meta或者javascript方式,因为www.cnwenhui.cn/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。

    修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容

RewriteEngine on
#开启Rewrite模块
RewriteRule (.*)\.php$ http://b.clin003.com/$1\.jsp [R=301,L,NC]

    结果却没有啥作用,怀疑可能是文件权限不够,ok。权限全改成777,结果也没啥作用。还好同事告诉我可能是重写规则的问题,把.htaccess 文件的规则重新找了一份放上去之后确实解决了这个问题,原来是隐藏了index.php 重写规则出了问题。

附上重写规则


 RewriteEngine on
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]

可以正常访问网站了~但是新的GUB出现了!找不到模板了!!!

这个算是小问题了吧,但是当时还是找了很久的解决方法才知道,服务器对于文件路径,严格区别大小写,当时线下在windows环境中,不区分路径大小写,所以访问是正常的,而服务器就不行了,结果就只能默默地都改称小写。

关键词:
返回列表