【问题标题】:mod_rewrite proxy URL missing images/cssmod_rewrite 代理 URL 缺少图像/css
【发布时间】:2012-07-05 06:21:37
【问题描述】:

我有以下 mod_rewrite 使用代理标志从一个 URL 文件夹重定向到另一个站点子域,如下所示:

.htaccess 文件放在http://www.domain.com/test/ 文件夹中:

RewriteEngine on
RewriteRule ^($|/.*) http://subsite.site.com/$1 [L,P]

问题、图片、CSS 和链接未正确显示。链接似乎指向:http://www。域名.com/linkname.html

我尝试过 RewriteBase /test/ 和 / 没有运气,但想不出任何其他方法。

我在上面的代码中缺少什么以使其与目标 URL 的相对路径一起工作?

【问题讨论】:

  • 你确定有问题的网址是相对的吗?
  • 如果我将重写规则放在根文件夹的 .htaccess 中,它可以正常工作,但在子文件夹中图像会失败。
  • images/css 显示为 domain 。 com/thesubsitelink/ 而不是 domain 。 com/test/thesubsitelink/
  • 这似乎是使用 mod_proxy_html 解决这个问题的唯一方法

标签: proxy rewrite proxypass mod-rewrite


【解决方案1】:

哦,您要更改内部内容吗?

Mod_rewrite 只更改标题,而不是内容,您肯定需要其他类似 mod_proxy_html 的东西。但是,通过使所有路径合法地相对,通常可以完全避免仅仅为了更改 url 而重写内容(假设您可以控制您的内容)。在这种情况下,内容中的所有路径都应该是:linkname.htmlsome_path_from_here/linkname.html 而不是 /linkname.htmlsome_path_from_here/linkname.html

【讨论】:

  • 谢谢..是的,我需要更改内容。我试过 mod_proxy_html 但也失败了。只有这样我才能通过将 mod_rewrite 规则放在根目录中以代理重定向目标上的每个文件夹来解决此问题。但这会覆盖我当前的网站。这是我失败的 mod_proxy_html 代码,有什么建议吗? ProxyPass /test/ subdomain.DestinationSite.com ProxyHTMLURLMap subdomain.DestinationSite.com /test ProxyPassReverse subdomain.DestinationSite.com SetOutputFilter proxy-html ProxyHTMLURLMap / /test/ ProxyHTMLURLMap /test /test
猜你喜欢
  • 2014-06-20
  • 2012-01-03
  • 2021-04-06
  • 2020-05-17
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 1970-01-01
相关资源
最近更新 更多