簡體   English   中英

Apache重寫為文件系統或代理

[英]Apache Rewrite to File System Or Proxy

我想創建一個Apache mod_rewrite規則來做兩件事

  1. 當請求/file-system-target時,服務於文件系統目錄的內容,
  2. 每當不請求/file-system-target都使用代理。

例如:

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

但是,當查看RewriteLog的輸出時, 后一個規則始終匹配,而前一個規則則永遠不匹配 我想念什么?

事實證明, “后期規則始終匹配且前者永遠不匹配”的說法可能不正確; 我有一個令人困惑的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]

我將假設有更優雅的方法來實現此功能,但是我對上述配置感到足夠滿意,可以將此任務稱為“完成”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM