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

时间:2016-11-05 15:41:48

标签: apache .htaccess uberspace

我在localhost:63837上运行了isso应用,我想代理来自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]

通常我会调整httpd-vhost.conf,但在这种情况下,我不能在我的主机(uberspace)上这样做。

<Location "/isso">
  ProxyPass "http://127.0.0.1:63837"
  ProxyPassReverse "http://127.0.0.1:63837"
</Location>

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

1 个答案:

答案 0 :(得分:1)

您的第二种方法几乎是正确的(实际上,这恰好适用于.conf文件)。

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

因此:

RewriteRule ^isso/(.*)$ http://127.0.0.1:63837/$1 [P]