2015-06-18 49 views
1

我想創建一個Apache mod_rewrite規則做兩件事情:當請求/file-system-target阿帕奇重寫文件系統或代理

  1. 即成文件系統目錄的內容和
  2. 代理每當/file-system-target不被要求。

例如爲:

RewriteRule ^/file-system-target /path/to/file/system/target [L] 
RewriteRule ^/(.*) http://localhost:8080 [P] 

看着RewriteLog輸出然而,當,在後者的規則總是匹配,前者永遠沒有匹配。我錯過了什麼?

回答

0

事實證明,聲明「後者的規則總是匹配&前者從未匹配」可能不是真的;我有一個令人困惑的httpd.conf,其中在多個地方啓用了重寫日誌記錄。

無論如何,第一條規則肯定是不完整的。它應該是這樣的:

RewriteRule ^/file-system-target(.+)$ /path/to/file/system/target/$1 [L] 

我還添加了一個額外的規則來處理(缺乏)斜槓:

RewriteRule ^/file-system-target$ /path/to/file/system/target/$1 [L] 

所以我結束了:

RewriteRule ^/file-system-target$ /path/to/file/system/target/$1 [L] 
RewriteRule ^/file-system-target(.+)$ /path/to/file/system/target/$1 [L] 
RewriteRule ^/(.*) http://localhost:8080 [P] 

我我會假設有更多優雅的方法來實現這個功能,但我對上述配置足夠滿意,稱這項任務已經完成。