我尝试了所有方法。Alias
、、ProxyPass
不同的配置文件(sites-available/000-default.conf
、mods-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