0

当前配置:

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在连接之前删除这个词?

4

1 回答 1

0

在虚拟主机上下文中,REQUEST_FILENAME 与请求 URL 相同,因为尚未映射任何内容。您可以使用 %{DOCUMENT_ROOT}/ 前缀来四处寻找,或任何其他显式路径。

要删除“wcstore”,请使用 rewriteCond 拆分字符串,然后使用 %1 代替原始变量

RewriteCond %{REQUEST_URI} ^/wcsstore/(.*)
RewriteRule /var/www/.../%1 ! -f
于 2015-07-20T01:44:00.173 回答