当前配置:
Alias /wcsstore "/opt/IBM/WebSphere/AppServer/profiles/demo/installedApps/WC_demo_cell/WC_demo.ear/Stores.war"
示例网址:
http://okdemo/wcsstore/test.txt
如何让它首先查找现有文件/opt/IBM/test/test.txt
并使用原始目录作为后备?
尝试:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/wcsstore/(.*) /wcsstore-old/$1 [PT,L]
Alias /wcsstore "/opt/IBM/test"
Alias /wcsstore-old "/opt/IBM/WebSphere/AppServer/profiles/demo/installedApps/WC_demo_cell/WC_demo.ear/Stores.war"
但似乎REQUEST_FILENAME
无法解析为/opt/IBM/test/test.txt
。所有东西都来自后备目录:
RewriteCond: input='/wcsstore/test.txt' pattern='!-f' => matched
也许我应该连接:/opt/IBM/test%{REQUEST_URI}
,但是如何在连接之前删除/wcsstore
字?
答案 0 :(得分:0)
在虚拟主机上下文中,REQUEST_FILENAME与请求URL相同,因为尚未映射任何内容。您可以使用%{DOCUMENT_ROOT} /作为前缀,或任何其他显式路径。
要删除“wcstore”,请使用rewriteCond拆分字符串,然后使用%1而不是原始变量
RewriteCond %{REQUEST_URI} ^/wcsstore/(.*)
RewriteRule /var/www/.../%1 ! -f