我有一个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粉1871608832024-01-17 11:29:04
Laravel必须指向<project_root>/public
,这是你的问题...
更新与Laravel相关的配置为DocumentRoot: "C:/Apache24/htdocs/laravel_project_name/public"
。
我知道你正在使用Apache,但是看看如何将Nginx
配置指向那个文件夹。