搜尋

首頁  >  問答  >  主體

將Laravel專案中的"Remove public directory"翻譯成中文為"移除公用目錄"

我正在製作一個 Laravel 項目,但有一個大問題,我無法從我的 URL 中刪除 /public/ 名稱。我看到了一個解決方案,將公共目錄的一些檔案移至 laravel 的根目錄,但我也了解到這是一種不安全的技術。所以我需要用 .htaccess 來解決這個問題,因為我無法存取 apache。

我在根目錄中建立了一個 .htaccess ,但這只是讓它在 URL 中沒有公共名稱的情況下工作,但 laravel 內部的路由仍然顯示公共名稱。 請幫忙。 我嘗試使用其他 htaccess 規則來刪除完整的公共,但 css、livewire、js 等檔案的內部路由不起作用,因為所有這些都有公共 url。

<ifmodule mod_negotiation.c>
    Options -MultiViews
</ifmodule>

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^ [N]

RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php

P粉898049562P粉898049562224 天前475

全部回覆(1)我來回復

  • P粉738821035

    P粉7388210352024-04-04 09:54:16

    我遇到了同樣的問題,我必須將網域設定的路徑從"public_html/"移到"public_html/public"。然後在你的"public_html/public/.htaccess"檔案中,我有以下設定:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
    
        # 处理授权头部
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        # 将请求发送到前端控制器...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    </IfModule>

    回覆
    0
  • 取消回覆