如何在将服务移动到子文件夹(Apache)后修复 php/html 代码

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

我在 Ubuntu 24.04 服务器上使用 2 个虚拟主机来提供单独的服务(具有单独的文档根),访问方式为:

http://server1.domain.comhttp://server2.domain.com,

但我被迫将它们都移动到一个虚拟主机,它们将位于共享相同文档根目录的不同子文件夹中。可通过以下方式访问它们: http://server.domain.com/service1http://server.domain.com/service2

显然,代码中所有文件链接都缺少子文件夹名称。我想知道如何在不更改所有代码的情况下解决这个问题。

情况如下:

/var/www - root folder
/var/www/service1
/var/www/service2

我已经通过以下方式构建了conf文件:

<VirtualHost *:80>
        ServerName server.domanin.com
        ServerAlias *.domain.com
        <Directory /var/www/service1>
      <Directory /var/www/service2>
              DirectoryIndex service1_login_page.php
      </Directory>
      <Directory /var/www/service2>
              DirectoryIndex service2_login_page.php
      </Directory>
</VirtualHost>

我尝试在其中添加重写规则,例如:

RewriteRule #RewriteRule ^([^/]*)$ /service1/$1 [NC]

但是我没有成功......我应该如何构建我的conf文件?

php html apache url-rewriting ubuntu-24.04
1个回答
0
投票

在 URL 上使用规范斜杠:

根据 URL 路径名解析规则,任何这些超文本文档的默认基础都是特定的子目录。

请参阅 Apache 的 mod_dir 模块 了解配置指令。

毕竟所有链接都不需要代码中的子文件夹名称。

如果您在它们前面添加了前导斜杠,请在前导斜杠前面放置一个点(“.”)或完全删除前导斜杠。

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