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