使用flask、wsgi和Apache2重写mod

使用flask、wsgi和Apache2重写mod,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我目前正在ip地址为(比如1.2.3.4)的服务器上托管一个flask web应用程序。我有Apache2作为我的web服务器,使用wsgi连接到flask。目前有多个应用程序在同一台服务器上运行,因此我在apache中设置了虚拟主机,将每个应用程序映射到特定的端口 我正在尝试将域名重定向到服务器。出于我无法控制的一些令人恼火的原因,我必须通过域当前指向的服务器上的.htaccess文件进行重定向。因此www.example.com/app被重定向到1.2.3.4:8080 现在,我想重写URL

我目前正在ip地址为(比如1.2.3.4)的服务器上托管一个flask web应用程序。我有Apache2作为我的web服务器,使用wsgi连接到flask。目前有多个应用程序在同一台服务器上运行,因此我在apache中设置了虚拟主机,将每个应用程序映射到特定的端口

我正在尝试将域名重定向到服务器。出于我无法控制的一些令人恼火的原因,我必须通过域当前指向的服务器上的.htaccess文件进行重定向。因此www.example.com/app被重定向到1.2.3.4:8080

现在,我想重写URL,这样在重定向后,用户就可以看到www.example.com/app/home,而不是看到1.2.3.4:8080/home

我该怎么做呢?我可以在flask目录中的某个地方添加.htaccess文件吗


提前谢谢

您必须使用反向代理来执行此操作,并且只有在托管
www.example.com
域的服务器上加载mod_代理时,您才能执行此操作。在htaccess中,您可以创建一个规则并使用
P
标志来反转代理。如果未加载mod_代理,则此规则将不起作用:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^app/(.*)$ http://1.2.3.4:8080/$1 [L,P]

谢谢快速提问,我是将其添加到托管www.example.com的服务器上的htaccess文件还是托管1.2.3.4的服务器上的htaccess文件?@user2874557我说要将其放在
www.example.com
域中。文档根目录中的htaccess文件。