サポート・機能ガイド/HTMLページ翻訳タグ/SEO対応・Rewrite設定
⚡ HTMLページ翻訳タグ🧩 Module / Plugin
🔍
SEO対応・Rewrite設定
言語プレフィックス付きURL(/en/ /ko/ など)を検索エンジンに正しくインデックスさせるための、サーバー側Rewrite設定です。
1
機能概要

翻訳APIタグは言語を切り替えた際、URLに/en//ko/などの言語プレフィックスを付与します(pushStateによるURLバー変更)。

サーバー側でこのURLを実際のページへ内部転送(Rewrite)することで、クローラーが各言語URLを個別にインデックスできるようになります。

⚠️
Rewrite設定はSEO対応のためのオプションです。設定しなくてもウィジェット自体は動作しますが、言語プレフィックスURLが404になるためSEO効果が得られません。
2
Apache2 / .htaccess

設定を書き込む場所によって、正しいパターンの書き方が異なります。ご自身の環境に合う方を、そのままコピーしてください。(2つを混在させると、意図しない動作になります)

パターンA: .htaccess ファイルに書く場合
<IfModule mod_rewrite.c> RewriteEngine On # 例: /en のように末尾スラッシュが無い場合は、まず /en/ へ301 RewriteRule ^(en|ko|es|zh-CN|zh-TW)$ /$1/ [R=301,L] # 例: /en/ のように末尾がプレフィックスのみの場合、実際のエントリーファイルへ # (index.html部分は、ご自身のサイトの実際のエントリーファイル名に置き換えてください) RewriteRule ^(en|ko|es|zh-CN|zh-TW)/$ /index.html [END] # 例: /en/products/ → /products/(URLバーはそのまま) RewriteRule ^(en|ko|es|zh-CN|zh-TW)/(.*)$ /$2 [END,QSA] </IfModule>
⚠️
単純に[L]だけで内部転送すると、環境によっては末尾スラッシュのURL(/en/)が403になることがあります。[END](Apache 2.3.9以降で利用可能)を使い、末尾スラッシュのケースは実在するエントリーファイルへ明示的に振り分けてください。
パターンB: apache2.conf ・ sites-enabled の <VirtualHost> ブロックに、直接書く場合
<VirtualHost *:443> ... DocumentRoot・ServerName・SSL設定 等 ... RewriteEngine On # 【重要】・.htaccessとは異なり、に直接書く # 場合は、パターンの先頭に必ず / を付けてください。付け忘れると、 # パターンが実際のリクエストパス(/en/等、先頭に/を含む)に一致せず、 # 書き換えが一切発生しない、または意図しないパスに書き換わり # 403/404になることがあります(実際に確認された不具合)。 # 例: /en のように末尾スラッシュが無い場合は、まず /en/ へ301 RewriteRule ^/(en|ko|es|zh-CN|zh-TW)$ /$1/ [R=301,L] # 例: /en/ のように末尾がプレフィックスのみの場合、実際のエントリーファイルへ # (index.html部分は、ご自身のサイトの実際のエントリーファイル名に置き換えてください) RewriteRule ^/(en|ko|es|zh-CN|zh-TW)/$ /index.html [END] # 例: /en/products/ → /products/(URLバーはそのまま) RewriteRule ^/(en|ko|es|zh-CN|zh-TW)/(.*)$ /$2 [END,QSA] </VirtualHost>
⚠️
パターンAのコードを、そのまま(先頭スラッシュ無しで)<VirtualHost>に貼り付けてしまうと、正しく動作しません。必ず、上のパターンBを使ってください。
3
Nginx
server { listen 80; server_name example.com; root /var/www/html; # 言語プレフィックス付きURLを実パスに内部転送 location ~ ^/(en|ko|es|zh-CN|zh-TW)(/.*)?$ { try_files $2 $2/ /index.php?$query_string; } location / { try_files $uri $uri/ /index.php?$query_string; } }
4
動作イメージ
# ① ユーザーが英語版URLにアクセス ブラウザ: https://example.com/en/products/?id=23 # ② Rewriteが内部転送(URLバーは変わらない) サーバー: /products/?id=23 を処理 # ③ 翻訳APIタグが /en/ を検知して英語翻訳を適用 翻訳APIタグ: sessionStorage に cur_lang='en' をセット → 英語翻訳適用 # ④ URLバーをそのまま維持(pushState) URLバー: https://example.com/en/products/?id=23 を維持
ℹ️
対応言語コードは、ご利用中のドメインで実際に設定している言語に合わせて、Rewriteルールの(en|ko|es|zh-CN|zh-TW)部分を変更してください。「ドメイン・言語」ページで設定済みの言語一覧を確認できます。