2015-06-26 39 views
7

所以我有一個標準的文件位於:如何讓i18n支持Drupal 7中的文件名?

/sites/default/files/hello.png 

我可以像這樣訪問:

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

然而,隨着國際化,這將是很好,如果前綴路徑也會爲這些工作文件。例如,此鏈接不起作用:

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

但事實並非如此。

所以我的問題是,我怎樣才能使這些「國家特定的」路徑也適用於文件?

我在想我可能需要在htaccess中做些什麼,然後創建一個模塊來過濾和重定向這些路徑,但這聽起來像是太多的努力,也許我錯過了簡單的方法來啓用它?

回答

2

您可以使用htaccess將所有語言版本的URL重定向到文件/圖像的默認URL。 如果你這樣做,你不需要在你的drupal代碼中做任何事情(例如自定義模塊)。

你重寫規則是這樣的

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

更新

如果您的網站是一個子目錄例如'drupal',你可以這樣修改你的重寫規則:

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

如果drupal $ base_path不是「/」,那會給404。您需要一種方法來保持base_path,而不是專門將其設置爲「/」。 –

+0

我想將其標記爲是,但希望能夠深入瞭解如何解決/問題? – coderama

+0

我在第一個示例中刪除了第一個'/',因爲它不是必需的,但我相信在子目錄中處理drupal安裝的最佳方式(即$ base_path不是'/')是我在下面添加的示例「更新」。 –