0

私はJoomlaをNginxと組み合わせて使用​​しており、現在、いくつかの言語(イタリア語、フランス語、中国語、およびオランダ語)がサポートされているWebサイトのURL書き換えを実現しようとしています。

URLには、ドメイン名の後に国コードがあります。たとえば、次のようになります。
http://www.example.com/fr/test/test.html
または
http://www.example.com/de/test/test.html

国コードがサブドメインの一部になる
ようにURLを書き直そうとしています:
http://www.example.com/fr/test/test.html

http://fr.example.com/test/test.html

Nginxでこれを達成する方法はありますか、それともJoomlaのサードパーティの拡張機能を調べる必要があります(私のお気に入りの選択肢ではありません)。

ありがとう !!

更新:
私は十分に明確ではありませんでした:書き直されたURLからのリダイレクトを透過的にしたかったのです。VBartのヘルプのおかげで、これが私が思いついたものです:

server {  
  server_name ~^(?<lang>.+)\.example\.com$;  
  location / {  
    rewrite /(.*)$ /$lang/$1 break;  
    proxy_pass http://www.example.com;  
    proxy_redirect http://www.example.com http://$lang.example.com/$request_uri;  
  }  
}  

さて、Nginxが提供されたコンテンツのリンクをその場で変更する方法はありますか?すなわち:生成されたページのすべてのリンクを?http://fr...ではなくのように見せたいhttp://.../fr/...

4

1 に答える 1

1
server {
    server_name ~^(?<lang>.+)\.example\.com$;
    ...
}

server {
    server_name www.example.com;
    rewrite ^/(?<lang>[a-z]+)(?<rest>.+)$ http://$lang.example.com$rest? permanent;
}

反対の例:

server {
    server_name ~^(?<lang>.+)\.example\.com$;
    return 301 http://www.example.com/$lang$request_uri;
}

server {
    server_name www.example.com;
    ...
}
于 2012-05-31T19:54:56.643 に答える