是否可以创建一个像符号链接一样工作的 .htaccess rewrite/redirect 规则?

Is it possible to create a .htaccess rewrite/redirect rule which works like a symlink?

我想发布不同版本的 eclipse-updatesite。 所有版本都将复制到服务器,我只能通过 ftp.

访问

我想要一个如下所示的文件夹结构:

myhost.de/storr/releases/0.0.1/       (/kunden/homepages/xx/dxxxx/htdocs/software/storr/releases/0.0.1/)
myhost.de/storr/releases/0.0.2/       (/kunden/homepages/xx/dxxxx/htdocs/software/storr/releases/0.0.2/)
myhost.de/storr/releases/0.0.3/       (/kunden/homepages/xx/dxxxx/htdocs/software/storr/releases/0.0.3/)
myhost.de/storr/latest/               (/kunden/homepages/xx/dxxxx/htdocs/software/storr/latest/)

如果有人使用 myhost.de/software/latest/ 他应该从最新发布的版本中获取所有文件。

我试图创建一个符号链接并将其复制到服务器,但没有成功。我没有 ssh 访问权限。

是否可以创建一个类似于符号链接的 .htaccess 文件?

提前致谢

Apache 的 Alias 指令与符号 link 非常相似,请查看相关文档:https://httpd.apache.org/docs/2.4/mod/mod_alias.html#alias

Alias /storr/latest /storr/releases/0.0.3

另一个选项确实是重写规则:

RewriteEngine on
RewriteRule ^/?storr/latest /storr/releases/0.0.3 [END]

如果您使用上述规则收到内部服务器错误(http 状态 500),那么您可能操作的是非常旧版本的 apache http 服务器。在这种情况下,您将在您的 http 服务器错误日志文件中看到对不受支持的 [END] 标志的明确提示。您可以尝试升级或使用旧的 [L] 标志,在这种情况下它可能会工作相同,尽管这在一定程度上取决于您的设置。

这两个规则在 http 服务器主机配置或动态配置文件(“.htaccess”文件)中同样有效。显然,模块需要在 http 服务器中加载并在 http 主机中启用(mod_alias 或 mod_rewrite)。如果您使用动态配置文件,您需要注意它的解释在主机配置中完全启用并且它位于主机的 DOCUMENT_ROOT 文件夹中。

一般性评论:您应该始终更喜欢将此类规则放在 http 服务器主机配置中,而不是使用动态配置文件 (".htaccess")。那些动态配置文件增加了复杂性,通常是意外行为的原因,难以调试并且它们确实减慢了 http 服务器的速度。它们仅在您无法访问真正的 http 服务器主机配置(阅读:非常便宜的服务提供商)或坚持编写自己的规则(这是一个明显的安全噩梦)的应用程序的情况下作为最后的选择提供。