如何在 Drupal 7 中使 i18n 支持文件名?

How to make i18n support filenames in Drupal 7?

所以我有一个标准文件位于:

/sites/default/files/hello.png

我可以这样访问它:

http://www.example.com/sites/default/files/hello.png

但是,对于 i18n,如果前缀路径也适用于这些文件,那就太好了。例如,这个 link 不起作用:

http://www.example.com/us/sites/default/files/hello.png

但事实并非如此。

所以我的问题是,如何使这些 "country-specific" 路径也适用于文件?

我想我可能需要在 htaccess 中做一些事情,然后还创建一个模块来过滤和重定向这些路径,但这听起来太费力了,也许我错过了启用它的简单方法?

您可以使用 htaccess 将所有语言版本 URL 重定向到 files/images 的默认 URL。 如果你这样做,你将不需要在你的 drupal 代码中做任何进一步的事情(例如自定义模块)。

您的重写规则如下所示

RewriteEngine On
RewriteRule ^([a-zA-Z-]*)/sites/default/files/(.*)$ sites/default/files/ [R=301,L]

已更新

如果您的站点位于子目录中,例如'drupal',你可以像这样修改你的重写规则

RewriteRule ^drupal/([a-zA-Z-]*)/sites/default/files/(.*)$ drupal/sites/default/files/ [R=301,L]