Übersetzen Sie „Öffentliches Verzeichnis entfernen' im Laravel-Projekt ins Chinesische als „Öffentliches Verzeichnis entfernen'
P粉898049562
P粉898049562 2024-04-03 19:26:05
0
1
543

Ich mache ein Laravel-Projekt, aber ich habe ein großes Problem: Ich kann den Namen /public/ nicht aus meinen URLs entfernen. Ich habe eine Lösung gesehen, um einige Dateien aus dem öffentlichen Verzeichnis in das Stammverzeichnis von Laravel zu verschieben, habe aber auch erfahren, dass dies eine unsichere Technik ist. Daher muss ich dieses Problem mit .htaccess lösen, da ich keinen Zugriff auf Apache habe.

Ich habe eine .htaccess-Datei im Stammverzeichnis erstellt, aber dadurch funktionierte es einfach ohne den öffentlichen Namen in der URL, aber die Routen in Laravel zeigen immer noch den öffentlichen Namen an. Bitte helfen Sie. Ich habe versucht, andere htaccess-Regeln zu verwenden, um die gesamte Öffentlichkeit zu entfernen, aber das interne Routing für CSS-, Livewire-, JS- usw. Dateien funktioniert nicht, da alle öffentliche URLs haben.

<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

Antworte allen(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>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage