在同一台伺服器上使用Apache配置重寫規則,以便能夠存取前端和後端
P粉946336138
P粉946336138 2024-01-16 13:12:59
0
1
501

我有一個Vue.js專案和一個Laravel專案在Apache。

我把Vue.js放在C:/Apache24/htdocs/vue_project_name,Laravel放在C:/Apache24/htdocs/laravel_project_name,所以我可以得到以下設定:

虚拟主机文档根目录:"C:/Apache24/htdocs/"。

前端URL:"http://domain_name/vue_project_name"

后端URL:"http://domain_name/laravel_project_name"

后端API URL:"http://domain_name/laravel_project_name/public/api"

我想在輸入http://domain_name時重寫URL,瀏覽器將直接跳到http://domain_name/laravel_project_name。當我輸入http://domain_name/api時,瀏覽器將直接跳到http://domain_name/laravel_project_name/public/api

例如,我有一個API,我可以呼叫http://domain_name/laravel_project_name/public/api/login來取得資源,但我希望簡化為http://domain_name/ api/login來取得資源。

如何實作這個功能?

這是我的httpd-vhosts.conf檔:

<VirtualHost *:80>
    DocumentRoot "C:\Apache24\htdocs"
    ServerName domain_name
    ErrorLog "C:\Apache24\logs\error.log"
    CustomLog "C:\Apache24\logs\access.log" combined
    <Directory "C:\Apache24\htdocs"> 
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

我知道當我輸入http://domain_name時,Apache會直接跳到http://domain_name/laravel_project_name,像這樣:

<VirtualHost *:80>
    DocumentRoot "C:\Apache24\htdocs\vue_project_name"
    ServerName domain_name
    ErrorLog "C:\Apache24\logs\error.log"
    CustomLog "C:\Apache24\logs\access.log" combined
    <Directory "C:\Apache24\htdocs\vue_project_name"> 
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

但我認為這會影響後端路徑,所以我需要一個更好的解決方案。

謝謝。

P粉946336138
P粉946336138

全部回覆(1)
P粉187160883

Laravel必須指向<project_root>/public,這是你的問題...

更新與Laravel相關的設定為DocumentRoot: "C:/Apache24/htdocs/laravel_project_name/public"

我知道你正在使用Apache,但看看如何將Nginx設定指向那個資料夾。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板