0
這就是我想要做的:任何在一臺機器上不能解析的URI都會通過反向代理碰到另一臺機器。配置是這樣的:Apache mod_rewrite RewriteCond -U標誌誤報
RewriteEngine On
RewriteCond %{REQUEST_URI} !-U
RewriteRule ^/(.*)$ http://other.site/$1 [P,NS]
現在,什麼是應該說的是:「如果我無法通過運行一個子請求找到任何地方,它撐船到代理。」
唯一的問題是,它不這樣做。隨着RewriteLogLevel千斤頂,我得到這個:
31.3.3.7 - - [29/Jul/2012:00:26:18 --0700] [internet.srs.bznz/sid#7fc6099fa228][rid#7fc609bf2bf0/initial] (5) RewriteCond URI (-U) check: path=/ -> status=200
31.3.3.7 - - [29/Jul/2012:00:26:18 --0700] [internet.srs.bznz/sid#7fc6099fa228][rid#7fc609bf2bf0/initial] (4) RewriteCond: input='/' pattern='!-U' => not-matched
該機器/上沒有什麼。它應該返回403.所以我的問題是:地獄是從哪裏來的?這是一款全新的Debian VPS,因此它不像配置中有任何污染。我在其他地方(Ubuntu 12.04)嘗試了同樣的事情,並且做了同樣的事情。
如何找出導致錯誤成功代碼的原因?
** [apache文檔](http://httpd.apache.org/ docs/current/mod/mod_rewrite.html#rewritecond):檢查_TestString_是否是一個有效的URL,可通過該路徑的所有服務器當前配置的訪問控制訪問**。因此,它只檢查配置的訪問權限,而不是一致性或文件系統權限... – motas 2012-11-08 16:55:39