2015-06-26 20 views
7

Così ho un file standard si trova in:Come creare un nome file i18n in Drupal 7?

/sites/default/files/hello.png 

posso accedere in questo modo:

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

Tuttavia, con i18n, sarebbe bello se i percorsi prefissati sarebbe anche lavorare per questi File. Ad esempio, questo collegamento non funziona:

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

Ma non è così.

Quindi la mia domanda è: come posso rendere questi percorsi "specifici per paese" anche per i file?

Sto pensando che potrebbe essere necessario fare qualcosa in htaccess e quindi anche creare un modulo che filtra e reindirizza questi percorsi, ma sembra proprio un troppo sforzo e che forse mi manca il modo semplice per abilitare questo?

risposta

2

È possibile utilizzare htaccess per rendere tutti gli URL versione lingua reindirizzati all'URL predefinito per file/immagini. Se lo fai, non dovrai fare nulla di più nel tuo codice drupal (ad esempio un modulo personalizzato).

tua regola di riscrittura sarebbe simile a questa

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

Aggiornato

Se il sito è in una sottodirectory per esempio 'drupal', è possibile modificare la regola di riscrittura in questo modo

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

Ciò darà 404 se drupal $ base_path non è "/". È necessario un modo per mantenere il percorso di base e non impostarlo esclusivamente su "/". –

+0

Voglio contrassegnarlo come sì, ma mi piacerebbe avere qualche idea su come aggirare il problema /? – coderama

+0

Ho rimosso il primo '/' nel primo esempio in quanto non è necessario ma credo che il modo migliore per gestire le installazioni drupal nelle sottodirectory (cioè $ base_path non è '/') è l'esempio che ho aggiunto sotto "aggiornato". –