如何在 htaccess 中将子文件夹重定向为代理?

crs*_*tin 3 apache .htaccess uberspace

我正在运行 isso 应用程序localhost:63837,我想代理来自的请求https://www.domain.com/isso

这些是我的方法:

RewriteRule https://www.domain.com/isso/(.*)$ http://127.0.0.1:63837/$1 [P] 
RewriteRule /isso/(.*)$ http://127.0.0.1:63837/$1 [P] 
RewriteRule /isso(.*)$ http://127.0.0.1:63837/$1 [P]
Run Code Online (Sandbox Code Playgroud)

通常我会进行调整httpd-vhost.conf,但在这种情况下,我无法在我的主机(uberspace)上执行此操作。

<Location "/isso">
  ProxyPass "http://127.0.0.1:63837"
  ProxyPassReverse "http://127.0.0.1:63837"
</Location>
Run Code Online (Sandbox Code Playgroud)

另外,我不喜欢为此使用子域。

Dus*_*jic 5

您的第二种方法几乎是正确的(事实上,这完全可以在.conf文件中使用)。

在每个目录上下文(Directory.htaccess)中,模式仅与部分路径匹配:定义规则的目录路径在比较之前从路径中剥离 - 直到并包括尾部斜杠!删除的前缀始终以斜杠结尾,这意味着匹配发生在没有前导斜杠的字符串上。

所以:

RewriteRule ^isso/(.*)$ http://127.0.0.1:63837/$1 [P]
Run Code Online (Sandbox Code Playgroud)