【发布时间】:2021-12-11 23:33:10
【问题描述】:
我正在使用 ubuntu 20,laravel 项目使用 php artisan serve 运行,但是当我使用此 URL laravel-local.com 访问该站点时,它显示空白页
无法得到任何错误
网站可用
<VirtualHost *:80>
ServerAdmin admin@MyWebsite.com
DocumentRoot /var/www/html/laravel-local.com/public
ServerName laravel-local.com
<Directory /var/www/html/laravel-local.com/public>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我尝试了什么
- 授予项目 777 访问权限
- 更改所有权
- 删除存储/框架内的文件夹
- 更改存储文件夹权限
- composer dump-autoload、php artisan 缓存和配置清除
- 删除公用文件夹中的 .htaccess 文件
我尝试了以上所有步骤仍然是一个空白页
根文件夹中的.htaccess 文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
公用文件夹中的.htaccess
<IfModule mod_rewrite.c>
Options -Indexes
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
【问题讨论】:
-
这是您拥有的唯一
.htaccess文件吗?它到底在哪里?您收到的 HTTP 响应是什么? -
有2个.htaccess文件,一个在根目录,一个在public目录
-
根据您的 vHost 配置,
/public文件夹是“根文件夹”。这就是我在回答中提到的。您的特定配置不需要两个.htaccess文件。 -
你怎么知道响应空白页的是“Laravel”而不是 Apache? HTTP 响应代码是什么?服务器的错误日志是否报告了什么?
-
您可以从浏览器开发工具的“网络”选项卡中获取状态代码。 (这确实是帮助诊断此类问题的第一个位置。)
标签: laravel apache .htaccess ubuntu