如何将一个 URL 路径别名为另一个 URL 路径(apache2)?

如何将一个 URL 路径别名为另一个 URL 路径(apache2)?

我尝试了所有方法。Alias、、ProxyPass不同的配置文件(sites-available/000-default.confmods-enabled/alias.conf)。我的问题很简单。我有一个apache2托管在的服务器xyz.com/name/。我想设置别名,xyz.com/name以便将其视为,xyz.com/name/并且路由正常工作。

xyz.com是主服务器(大学所有)并将请求代理到xyz.com/name/,我的服务器位于其下。

在 Debian 上运行的 Apache2 网络服务器。

答案1

评论太长

一般来说:服务器具有主机名,例如example.com,而不是包含主机名和目录路径的 URI,例如example.com/name

现在可以有一个映射,将特定目录路径从托管服务器映射example.com不同的(后端)服务器。这通常被称为反向代理(尽管一些设备/工具实现这种映射略有不同)。

听起来您的服务器是后端服务器,我们就这么称呼它name.internal.example.com

任何人负责example.com确保http(s)://example.com/name/ 尾随/ 映射相同http(s)://example.com/name 没有尾随/

一般来说,当你将内容部署在前端用于内容的同一目录中时,它会有所帮助,即在目录中/name

然后 http(s)://example.com/name 可以映射到http(s)://name.internal.example.com/name (注意两者都省略了尾随的斜杠)——这通常可以确保当请求诸如时http(s)://example.com/name/ http(s)://example.com/name/path/to/some/content 也将正确映射到您的后端服务器。

通常,这不需要在您的 apache 后端服务器中进行特别复杂的配置。最小的 VitrtualHost 块如下:

<VirtualHost *:80>
   ServerName name.internal.example.com
   DocumentRoot "/var/www/html" 
</VirtualHost>

并在目录中发布你的网页内容/var/www/html/name

相关内容