在我的/public_html/我已經安裝了一個 WordPress 網站。現在我已經在里面安裝了一個 laravel 應用程式/public_html/app/。
然后在/public_html/app/.htaccess我添加了:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
在/public_html/app/public/.htaccess我添加了:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /app/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
</IfModule>
當我嘗試打開https://example.com/app/時出現錯誤 404。當我嘗試直接打開時,https://example.com/app/public我有一半作業站點,因為它正在搜索https://example.com/.
htaccess為了作業,需要在 s 中更改什么。
目標是在主 WP 站點上有一個按鈕,當我單擊它以加載 laravel 站點時。
uj5u.com熱心網友回復:
RewriteBase /app/
您需要洗掉該RewriteBase指令。這最終將請求重寫為/app/index.php,當它應該是/app/public/index.php。默認是重寫到當前目錄(包含.htaccess檔案的目錄),所以RewriteBase這里不需要該指令。
(或者,您可以將其“正確”設定為RewriteBase /app/public- 但這不是必需的,然后會將這個安裝硬編碼到/app目錄中。)
我有一半的作業站點,因為它正在搜索 css/影像
https://example.com/
這取決于您的影像在哪里。如果影像位于,/app/public/assets/images/myimage.jpg那么您應該使用根相對 URL(以斜杠開頭)參考您的影像,不包括public目錄,例如。href="/app/assets/images/myimage.jpg".
更新:
這是否意味著我現在必須手動編輯網站上的所有影像、鏈接、按鈕等才能添加
/app/...到資產前面?
通常,是的。以同樣的方式,您可能已經/app/在所有指向頁面的內部鏈接之前添加了。(?)
例如徽標 -
<img src="/assets/main/img/logo.png">
但是,由于您使用的是相對于根的 URL,并且您的 Laravel 資產位于已知位置,因此您可以通過在根 (WordPress).htaccess檔案中實作重寫來將 Laravel 資產重寫到正確的位置(大概是/app/public/...)來解決此問題。
但是,這確實意味著您不能/assets在根目錄中有一個子目錄(不實施額外的檔案系統檢查),也不能有一個以 開頭的 WordPress URL /assets,因為它會發生沖突并且無法訪問。
例如,在/.htaccess檔案頂部,在任何其他 WordPress 指令之前,您可以執行以下操作:
# Rewrite Laravel assets to the correct location
RewriteRule ^assets/. app/public/$0 [L]
# BEGIN WordPress
:
where$0是包含與RewriteRule pattern匹配的整個 URL 路徑的反向參考。
現在,任何請求/assets/<something>都將在內部重寫為/app/public/assets/<something>. /assets/本身不會被重寫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441228.html
