Laravel 8.4 – 从 URL 中删除 Public

Laravel 8.4 – Remove Public from URL

我正在创建一个将文本转换为语音的网站。我正在使用来自 codecanyon 的脚本,该脚本是用 PHP 7.4.x 和 Laravel 8.4.x 开发的。我面临的问题是我不想显示 /public URL 作为访问该网站的永久链接。现在,如果我输入 mywebsite.com/pubic 则可以访问该网站,否则如果我输入 mywebsite.com 则它只显示文件。我遵循了之前发布在 Whosebug 上的一些查询,但没有得到任何结果。 我关注的话题是 我什至尝试重命名 server.php ,复制 .htaccess 并重写它。但这些都导致屏幕显示错误甚至空白。

我的 .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]

public 文件夹的内容应该放在你服务器的 public 文件夹中(我的服务器上是 public_html),其他所有内容都应该存储在不同的文件夹中(fe laravel_mywebsite)。然后你应该去 public_html/index.php 并根据你放置 Laravel 应用程序的位置更改文件夹路径。

如果你只想使用.htaccess,你只需要将所有请求从/public重写到/

RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/ [L,R=301]

要从 URL 中删除 /public,您将不会使用 .htaccess 文件。

您要做的是将 /public 文件夹设置为服务器的服务目录。

如果您使用 Apache,只需转到 /etc/apache2/sites-available/000-default.conf 文件并将 DocumentRoot 更改为 {您的基本文件夹}/(通常是 /var/www)到 {你的基本文件夹}/public