最近开始测试阿里云的一台服务器,作为开发的测试环境试试。
问题产生原因:
服务本来好好的,想试试nginx服务,关闭apache,启动nginx,发现除了laravel的根目录可以访问,其他一律报404。关闭nginx,再启动apache,跟nginx一样,除了根目录其余都是404.
解决方案:
apache
主要是因为…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>
nginx
主要原因是url界面美化后,无法识别url
配置文件中增加以下内容:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
参考文件:
apache:
https://blog.csdn.net/u012875214/article/details/119540648
nginx:
https://www.cnblogs.com/cuianbing/p/13748547.html