部署在apache子目录上的Laravel惯性vue重复子目录名称

问题描述 投票:0回答:1

我在 apache 上的 /var/www/html 子目录中部署了一个 laravel/inertia/vue 项目 - 我们称之为“myapp”。

在浏览器上:http://localhost/myapp 显示为 http://localhost/myapp/myapp,重复 myapp。 000-default.conf 上的虚拟主机设置如下: ...原始设置

#Settings for myapp
 Alias /myapp /var/www/html/myapp/public
 <Directory /var/www/html/myapp>
    AllowOverride All
    Options -Indexes
 </Directory>

myapp/public 上的 .htaccess 是原始文件,添加了以下行: 重写库 /myapp/

我的应用程序中一切正常,除了显示项目时

http://localhost/myapp/myapp/users/3 并在浏览器上按刷新,我得到 404 not find 因为工作实际上是 http://localhost/myapp/users/3 没有重复的 myapp。

有没有办法设置部署,这样它就不会重复 myapp 以及当我键入时 http://localhost/myapp 它实际上是 http://localhost/myapp,

我通过谷歌搜索所述问题尝试了一些建议,但我无法找到解决方案

laravel apache
1个回答
0
投票

似乎需要对配置进行一些小调整才能解决此问题。

要解决重复子目录问题,请按照以下步骤操作:

  1. 更新虚拟主机配置: 编辑您的 Apache 虚拟主机配置 (000-default.conf) 并确保其如下所示:
#Settings for myapp
Alias /myapp /var/www/html/myapp/public
<Directory /var/www/html/myapp/public>
    AllowOverride All
    Options -Indexes
    RewriteEngine On           # Add this line
    RewriteBase /myapp/        # Add this line
</Directory>
  1. 更新公共目录中的.htaccess: 在 Laravel 应用程序 (myapp/public) 的 public 目录中,确保 .htaccess 文件包含以下行:
RewriteBase /myapp/

您的描述中已经提到了此步骤,但只需确保其正确实施即可。

  1. 清除配置缓存:

进行这些更改后,使用以下命令清除 Laravel 配置缓存:

php artisan config:clear
  1. 重新启动阿帕奇:

重新启动 Apache 以将更改应用到虚拟主机配置:

sudo service apache2 restart

如需更多参考,您可以查看有关部署到子目录的 Laravel 官方文档:

Laravel 部署到子目录

© www.soinside.com 2019 - 2024. All rights reserved.