下载而不是访问网站上的资源(mod重写问题)



我有一个网站,在每个URL上添加一个尾随/,但我有一个文件,我想使用常规html使用常规表单下载。当我将要下载.jar文件的项目的 URL 添加到表单操作时:action="/resources/app.jar"末尾添加一个斜杠,它被视为目录。

无论如何,我可以专门将其设置为下载而不会弄乱我的 url 重定向吗?

如果它更容易,是否可以删除 URL 栏中以 .zip/ 结尾的任何 url 的尾部斜杠?

最简单的解决方案是排除 url 类型,使其不附加斜杠。如果您在网址中添加斜杠,则整个网站可能都有"漂亮的网址",因此没有扩展名。可能应该下载带有扩展名的文件:

RewriteCond %{REQUEST_URI} !([^/]+).([^/]+)$
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^ %{REQUEST_URI}/ [R,L]

如果要改为排除特定目录,例如包含所有下载的目录"downloads",则可以执行以下操作:

RewriteCond %{REQUEST_URI} !^/path/to/downloads/
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^ %{REQUEST_URI}/ [R,L]

如果需要,请确保规则与内部重写的 URL 不匹配。

最新更新