我一直在努力尝试在我的生产服务器上运行一条规则,该规则可以在我本地计算机上的WAMP服务器上正常工作:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.exe /download/ [L]
在我的本地服务器上,它将所有直接文件下载请求重定向到/ download /但是在生产服务器上只下载文件,如果删除条件并键入一个不存在的文件名,它会重定向到/ download /。
一旦我有了这个工作,我将添加一个附加条件,引用必须是/ download / ok /下载文件。
答案 0 :(得分:1)
尝试在最上面添加此行:
Options +FollowSymlinks
所以...
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.exe /download/ [L]
答案 1 :(得分:0)
尝试找出%{REQUEST_FILENAME}
的值:
RewriteCond %{QUERY_STRING} ^$
RewriteRule \.exe %{REQUEST_URI}?%{REQUEST_FILENAME} [R]
也许你需要自己编写正确的文件系统路径:
RewriteCond %{DOCUMENT_ROOT}$0 -f
RewriteRule .*\.exe.* /download/ [L]
答案 2 :(得分:0)
下载必须来自缓存!
我觉得现在真的很蠢,我花了不少时间在这上面,而且这一次都是缓存问题,我清除了firefox缓存并且工作正常..
我决定:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{HTTP_COOKIE} !^.*download_key=abc123.*$
RewriteRule \.exe /download/ [R]