laravel - 在 Apache 服务器和 webuzo 面板上的 laravel 中删除 /public
问题描述
我想在我想使用虚拟主机而不将 server.php 更改为 index.php 的 URL 中删除 /public。
我正在使用 webuzo 管理面板我将此行添加到 apache 配置文件,但它似乎不起作用请帮助我该怎么办
我的服务器是 centOs 7 而我的项目是在 laravel 5.8
<VirtualHost *:80>
ServerName uptodate.pnashr.pub
ServerAdmin webmaster@mawpro.me
DocumentRoot /home/uptodateadmin/public_html/public
<Directory /home/uptodateadmin/public_html/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
</VirtualHost>
解决方案
我已经测试了您的 VirtualHost 配置,该代码没有任何问题。
您必须确保您的公共 .htaccess 是 laravel 的默认设置并且没有被删除。每次我们添加新域或子域 web 时,Webuzo 都会重新生成 VirtualHost 配置。所以从 webuzo 管理面板设置文档根目录不要从 apache 配置文件手动更改。
实际上,VirtualHost 不会将 server.php 更改为 index.php,而是将 server.php 更改为位于父目录和子文件夹 public 的文档根目录。
您可以制作 server.php 文件并包含“../server.php”;在那个文件里面
不要忘记检查您的 .htaccess。只需使用来自 laravel 的默认 .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]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>