我正在使用 ubuntu 20,laravel 项目使用 运行php工匠服务但是当我使用此 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>
我试过的我尝试了上述所有步骤仍然有一个空白页
根文件夹中的 .htaccess 文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
公共(public)文件夹中的.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>
最佳答案
sites-available
更新:您的 vHost 配置应在“启用站点”中定义,以便实际应用配置。在“sites-available”中创建一个从“sites-enabled”到实际配置文件的符号链接(symbolic link)。并重新启动 Apache。
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>
您不需要
.htaccess
像这样的文件(需要放在 /public
目录上方的目录中),因为您已经配置了 /public
目录为 DocumentRoot
在服务器配置中。如果您还删除了
.htaccess
/public
中的文件子目录,那么这将导致重写循环(500 错误)。您只需要文档根目录中的标准 Laravel 前端 Controller (
.htaccess
文件),即。在 /public
子目录。但是,您应该定义
DirectoryIndex
(如果尚未在服务器配置中设置),在您的 vHost(<Directory>
容器)或主 Laravel 的顶部 .htaccess
文件(在 /public
文件夹内)。如果没有定义,那么对 Laravel 目录本身(主页)的请求将不会通过 Laravel 路由,并且可能会导致来自 Apache 的 403 Forbidden 响应(或者更糟的是,如果 Indexes
已启用,则会出现目录列表)。例如:
DirectoryIndex index.php
关于Laravel 在本地 ubuntu 20 中显示空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69725722/