laravel - 从 Laravel 7 中的 URL 中删除 /public
问题描述
尽管有数百个类似的问题,但没有一个真正解决我的问题。我已经设置了一个 Laravel 7.14.1 应用程序,并将其上传到共享主机。
为了使其在共享主机上工作,我执行了以下步骤:
1- 将 server.php 重命名为 index.php
2- 将 .htaccess 移至根目录
3- 在 .htaccess 中,我设置了以下规则
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]
4-创建如下测试路线:
Route::get('/test', function () {
return 'HI';
});
现在当我访问domain.com/test
它时它给了我 404 错误但是当我访问doamin.com/public/test
它时它可以工作
如何从我的网址中删除 /public 部分?
解决方案
共享主机最简单、最安全的解决方案:
- 从 SSH 转到您的 Laravel/Lumen 根路径
- 运行
mv .htaccess .htaccess-BACKUP
以备份您当前的.htaccess
- 跑
cp public/index.php ./ && cp public/.htaccess ./
- 享受 :)
注意:如果您没有 SSH 访问权限,您可以从 cPanel > 文件管理器手动执行完全相同的操作
推荐阅读
- javascript - TypeScript - 图像对象未以所需大小绘制
- c# - GraphicsPath 字体“中心线”字体(用于雕刻)
- php - 在 PHP MySQL 中连接表时的二维数组
- c - c中的内联函数
- enterprise-architect - Enterprise Architect (EA) 恢复图表上的特殊字符
- mysql - 使用 Powershell 针对 MySQL 运行 MySql 存储过程脚本
- sql - Oracle IOT 将 count(1) 设为 0,即使其中包含条目
- php - 添加相关实体的更好方法
- javascript - 如何使用 JavaScript 在 HTML 中的 TextArea 内获取文本宽度和高度?
- generics - 用于 Void 和 value 的 Kotlin 泛型