【问题标题】:.htaccess rewriting with the [P] proxy flag.htaccess 使用 [P] 代理标志重写
【发布时间】:2011-04-12 06:57:52
【问题描述】:

我正在尝试通过 .htaccess 和代理标志进行不可见(透明?)重写。它适用于 [R] 标志,但不适用于 [P] 标志,因为它只会给出 500 错误。这两个域位于不同的服务器上,并且启用了 mod_proxy 模块。我的 .htaccess 是否正确?

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST}    =one.com
RewriteRule ^(.*)$          http://two.com/$1 [P]

【问题讨论】:

  • 您能否检查出现 500 错误的服务器上的错误日志以了解具体错误是什么?
  • 这是我得到的错误:.IP..*** - - [14/Sep/2010:19:33:11 +0200] "GET /149c9fad24f457143dcb HTTP/1.1" 500 433 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; fr-fr) AppleWebKit/533.18.1 (KHTML, like Gecko) 版本/5.0。 2 Safari/533.18.5"
  • 虽然来自访问日志,但应该有一个单独的错误日志来解释 Apache 生成 500 响应的原因。
  • 不,抱歉,我无权访问任何其他日志...

标签: .htaccess mod-rewrite url-rewriting apache2


【解决方案1】:

如果mod_proxy 被编译为共享模块,它也需要您显式加载相关的子模块。有可能您的服务器上的mod_proxy_http 未启用,当mod_proxy 尝试处理mod_rewrite 传递给它的请求时,这会导致内部服务器错误。

mod_proxy 本身已启用并且可能像您说的那样工作,因为如果您没有启用它,使用 P 标志只会生成 404 响应。虽然没有错误日志,但很难确定,因此您可能需要找到有权访问它的人,看看发生了什么来帮助您解决问题。

【讨论】:

  • 感谢您提供有关 404 的说明——我不知道为什么会收到它!
猜你喜欢
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
相关资源
最近更新 更多