我想创建一个Apache mod_rewrite规则来做的两件事--
/file-system-target时,服务文件系统目录的内容/file-system-target时代理。例如:
RewriteRule ^/file-system-target /path/to/file/system/target [L]
RewriteRule ^/(.*) http://localhost:8080 [P]但是,当观察RewriteLog的输出时,后一条规则总是匹配的,而前者永远不匹配。我遗漏了什么?
发布于 2015-06-19 21:29:29
事实证明,语句“后一条规则总是匹配的&前者永远不匹配”可能不是真的;我有一个令人困惑的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]我将假设有更优雅的方法来实现这个特性,但我对上面的配置非常满意,称此任务为“已完成”。
https://stackoverflow.com/questions/30924516
复制相似问题