我想创建一个Apache mod_rewrite
规则来执行两件事:
/file-system-target
且/file-system-target
。E.g:
RewriteRule ^/file-system-target /path/to/file/system/target [L]
RewriteRule ^/(.*) http://localhost:8080 [P]
但是,在观看RewriteLog
的输出时,后一条规则始终匹配且前者永远不匹配。我错过了什么?
答案 0 :(得分: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]
我将假设有更优雅的方式来实现此功能,但我对上述配置足够满意,可以将此任务称为“完成”。