我正在研究laravel 5.4项目,想从url中删除public。现在我的url是localhost / project_name / public / login。 请建议我从网址中删除public。
答案 0 :(得分:1)
第1步:重命名文件
第一步非常简单,您只需重命名文件名即可。您必须在laravel根目录下将server.php重命名为index.php。
server.php
INTO
index.php
第2步:更新.htaccess
首先,您必须复制.htaccess文件并将其放入laravel根文件夹。您只需从公用文件夹中复制.htaccess文件,然后更新以下代码:
.htaccess
Options -MultiViews -Indexes
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]
# Handle Front Controller...
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
文档:https://hdtuto.com/article/laravel-remove-public-from-url-using-htaccess
答案 1 :(得分:0)
在您的根目录中创建一个新的.htaccess文件,然后粘贴以下代码。
选项-MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
最佳解决方案之一