我使用以下配置:
RewriteEngine On
RewriteMap url-rewrite prg:/usr/bin/url-rewrite
RewriteRule ^(.*)$ ${url-rewrite:%{HTTP_HOST}$1} [P]
但有时重写的 URL 会出现混淆:
127.0.0.1 - - [30/Jun/2011:15:12:37 +0300]
[localhost...] [...] (5) map lookup OK:
map=url-rewrite key=localhost/1.gif ->
val=http://127.0.0.1:8080/path/2.gif
url-rewrite 脚本仅添加路径段,但不更改文件的名称。我预期 val=http://127.0.0.1:8080/path/1.gif.这导致用户实际上获取了错误的图像文件。
注意:如果您想获得如上所述的详细调试日志(影响性能),请使用:
RewriteLog /path/to/file.log
RewriteLogLevel 9
答案1
看来 url-rewrite 脚本有错,你应该发布这个脚本代码。
但在此之前请检查您是否已设置RewriteLock
指令,使用 apache 时prg:
需要同步锁,以免混淆结果。