以下情况:
源URL的格式为:
https://example.com/tmp/x%23.jpg
目标文件位于文件系统上的以下路径(相对于文档根目录)下:var/assets/tmp/x#.jpg
因此,我想使用以下规则将此路径重写为本地文件:
RewriteRule "^tmp/x#.jpg$" /var/assets/$0 [PT,L]
我还尝试了以下方法:
RewriteRule "^tmp/x#.jpg$" /var/assets/%{REQUEST_URI} [PT,L]
但是它们都导致404,并显示以下消息:
The requested URL /var/assets/tmp/x was not found on this server.
有趣的是,URL在x
之后被截断,因此第一个特殊字符在哪里。
另一个有趣的事实是,以下条件匹配,但是规则失败:
RewriteCond %{DOCUMENT_ROOT}/var/assets%{REQUEST_URI} -f # matches
RewriteRule ^(.*)$ /var/assets%{REQUEST_URI} [PT,L] # file not found
也许有些人知道我如何解决这个问题。
非常感谢!