2015-06-26 30 views
7

więc mam standardowy plik znajduje się na stronie:Jak ustawić nazwy plików w i18n w Drupal 7?

/sites/default/files/hello.png 

mogę uzyskać dostęp to tak:

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

Jednak z i18n, byłoby miło, gdyby poprzedzone ścieżki będzie również pracować dla nich akta. Na przykład ten link nie działa:

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

Ale tak nie jest.

Moje pytanie brzmi: w jaki sposób mogę sprawić, by ścieżki "specyficzne dla danego kraju" działały również dla plików?

Myślę, że być może będę musiał coś zrobić w htaccess, a następnie utworzyć moduł, który filtruje i przekierowuje te ścieżki, ale to brzmi jak zbyt dużo wysiłku i być może brakuje mi łatwego sposobu na włączenie tego?

Odpowiedz

2

Możesz użyć polecenia htaccess, aby wszystkie adresy URL w wersjach językowych przekierować do domyślnego adresu URL dla plików/obrazów. Jeśli to zrobisz, nie będziesz musiał robić nic więcej w swoim kodzie drupalnym (np. Moduł niestandardowy).

reguła przepisywania wyglądałby następująco

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

Updated

Jeśli witryna jest w podkatalogu np "drupal", możesz zmodyfikować regułę przepisywania, taką jak ta:

+2

To da 404, jeśli drupal $ base_path nie jest "/". Potrzebujesz sposobu na zachowanie base_path i nie ustawianie go wyłącznie na "/". –

+0

Chcę oznaczyć to jako "tak", ale chciałabym uzyskać wgląd w to, jak obejść ten problem? – coderama

+0

Usunąłem pierwsze '/' w pierwszym przykładzie, ponieważ nie jest potrzebne, ale uważam, że najlepszym sposobem radzenia sobie z instalacjami drupalnymi w podkatalogach (np. $ Base_path nie jest '/') jest przykład dodany pod "Zaktualizowany". –