Laravel在部署时路由到子文件夹

时间:2020-10-26 02:41:46

标签: php laravel web server

我有一个Laravel Apps和一个共享主机。我想将Laravel应用程序部署到cpanel,但出现错误

404 resources not found部署时。我已将laravel公共文件夹放入根文件夹,并将laravel文件放入子文件夹/laravelApp

所以我的托管结构如下:

bdd.services
|--> public_html
|----> myLaravelApp
|------> css
|------> js
|------> laravelApp
|--------> app
|--------> /* and all the laravel apps inside here */
|------> .htaccess
|------> index.php
|
|
|----> someonesProject

当我尝试测试该应用时,我看到请求正在请求

https://mydoamin.com/login/auth,应该在https://mydoamin.com/myLaravelApp/login/auth处。并且显示错误404 resources not found

那么如何使路由始终转到https://mydoamin.com/myLaravelApp/?也许还有另一种解决方案?

这是我的.htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

我还将APP_URL设置为.env

APP_URL=https://mydoamin.com/myLaravelApp/

1 个答案:

答案 0 :(得分:1)

在这种情况下,您应该确保自己拥有

APP_URL="http://example.com/folder"

在您的.env文件中

然后不要像这样进行href

href="/login"

为您的路线命名

Route::get('login', ...)->name('login');

然后像这样

href="{{ route('login') }}"

这样,它将始终使用完整的网址