将Laravel项目中的"Remove public directory"翻译成中文为"移除公共目录"
P粉898049562
P粉898049562 2024-04-03 19:26:05
0
1
497

我正在制作一个 Laravel 项目,但有一个大问题,我无法从我的 URL 中删除 /public/ 名称。我看到了一个解决方案,将公共目录的一些文件移动到 laravel 的根目录,但我也了解到这是一种不安全的技术。所以我需要用 .htaccess 解决这个问题,因为我无法访问 apache。

我在根目录中创建了一个 .htaccess ,但这只是让它在 URL 中没有公共名称的情况下工作,但 laravel 内部的路由仍然显示公共名称。 请帮忙。 我尝试使用其他 htaccess 规则来删除完整的公共,但 css、livewire、js 等文件的内部路由不起作用,因为所有这些都有公共 url。

<ifmodule mod_negotiation.c>
    Options -MultiViews
</ifmodule>

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^ [N]

RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php

P粉898049562
P粉898049562

全部回复(1)
P粉738821035

我遇到了同样的问题,我不得不将域名设置的路径从"public_html/"移动到"public_html/public"。然后在你的"public_html/public/.htaccess"文件中,我有以下设置:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # 处理授权头部
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # 将请求发送到前端控制器...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板