【发布时间】:2021-08-08 16:26:18
【问题描述】:
我有一个默认的 laravel 8 项目。如果我使用“/public/”来访问路由,我只能访问我的文件,我不希望那样。我只想去 'localhost/ProjectName/Route' 而不是 'localhost/ProjectName/public/Route'。
我尝试过更改 .htacess,将其发送到 root,将 server.php 重命名为 index.php 以及我在网络上找到的一百万个其他解决方案。
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization MemberHeader
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]
# Remove public URL from the path
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
这是我的过程
【问题讨论】:
-
如果您在问题中显示您的路线会有所帮助。一种可能性是您定义了一个路由组,例如
Route::name('public.')->group(function () { ... -
您使用的是哪个网络服务器?您应该将文档根目录设置为
localhost/ProjectName/public。 -
为您的项目设置 VirtualHosts 或使用项目根文件夹中的
php artisan serve -
将您的
.htaccess重置为原来的状态。例如,如果您使用 WAMP,那么您可以这样做:codedecode.co.in/blog/wordpress/set-up-virtual-host-with-wamp 关键是当您设置虚拟主机时,您需要选择公用文件夹的路径。如果您在实时服务器上苦苦挣扎,那么同样的原则也适用,只需确保 Web 根目录是公用文件夹。
标签: laravel