【发布时间】:2020-10-09 12:35:49
【问题描述】:
尽管有数百个类似的问题,但没有一个能真正解决我的问题。 我已经设置了一个 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 部分?
【问题讨论】:
-
您必须确保“公共”文件夹是主目录。如果您使用的是 lamp 或 xxamp 或 wamp。
-
是共享主机,怎么办?
-
在这种情况下,您必须将您的 laravel 应用程序上传到您的共享主机 public_html 文件夹上方,并且公共文件夹的包含保留到 public_html
-
恐怕我做不到。我有特定的结构。
-
首先将项目上传到主根目录,然后将public文件夹移动到public_html..并更改服务提供商注册方法以从public_html读取数据