Laravel框架是很多PHP开发者使用的号称最简洁优雅的框架,笔者也是一个Laravel框架的使用者,在部署服务的时候,遇到的主目录正常访问,其他目录都报404错误的问题
一、Windows+Apache+MySql+PHP(简称Apache环境WAMP)
如果你是本地环境,使用的是PhpStudy安装的集成环境,我们只要找到Laravel框架目录下的public文件夹里面的.htaccess文件,在里面添加以下代码(无需重启服务器,建议是重启一下)即可恢复
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Ps:其实我们在通过Composer安装Larvel框架以后,这个.htaccess文件里面就是这个内容,只是我们在用集成环境设置本次测试域名的时候,这个.htaccess文件里面的内容就被清空了。
二、Windows+Ngix+Mysql+PHP(简称Ngix环境WNMP)
我们还是以PhpStudy集成环境为例,这个时候我们不能在Laravel框架文件内去寻找我们需要找到phpstudy里面的设置->配置文件->vhosts.conf->{你设置的网站域名}_80 这个文件:
加上以下代码:
try_files $uri $uri/ /index.php?$query_string;
Ps:如果配置文件中存在 try_files $uri $uri/ =404;需要将它注释掉或者删掉,否则会报错
Ngix在修改完成以后一定要重启服务器,否则无效。
三、Linux环境其实跟Windows环境的问题是一样的 都是要找到conf文件进行修改,这里笔者以当下最火热的宝塔的集成面板为例子:
首先我们打开面板 找到 网站 -> 设置 -> 配置文件 ->修改添加以下代码
try_files $uri $uri/ @rewrite;
location @rewrite {
rewrite ^/(.*)$ /index.php?_url=/$1;
}
Apache环境相对比较简单 还是参考Windows环境实例。
作为一名计算机工作人员,还是感谢各位同仁的无私奉献,这个是本人在工作中遇到的一些问题,记录下来,让大家节省更多的时间,去做我们值得做的事情。
加油!!!