- ステータス
- 解決済み
問題の概要
投稿が公開および翻訳された後にURLフォーマットを変更すると、ブラウザのアドレスバーにURLを直接入力した場合にリダイレクトの問題が発生する可能性があります。
例:
- WPMLでディレクトリごとの異なる言語を使用しており、サイトのページURLがhttp://mysite.com/es/pagina-de-muestra/であるとします。
- ここで、URLフォーマットを言語ごとに異なるドメインに変更すると、上記のURLはhttp://misitio.es/pagina-de-muestra/になります。
- http://mysite.com/es/pagina-de-muestra/を直接開きます。
その結果、404サーバー通知が表示されます。
* 注 – WPMLスティッキーリンクプラグインは類似した(ただし同一ではない)状況を防ぎますが、この場合はURLを直接使用しているため機能しません。
回避策
これはバグではありませんが、サイトの.htaccessファイルを変更することで解決する独自の方法があります。お客様の設定に依存する高度なカスタマイズ作業であるためサポートの対象外ですが、例を示すことは可能です。
前述のシナリオの場合、WordPressのルールの直前に同様のコードを配置します。.htaccessの最上部でも問題ありません。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^es(.*)$ http://misitio.es$1 [L,R=301]
これにより、http://mysite.com/es/pagina-de-muestra/ へのすべてのリクエストは http://misitio.es/pagina-de-muestra/ に転送されるようになります。
以下の点にご注意ください。
- これはmod-rewriteが有効になっているApacheでのみ機能します。
- これに関する多数のリソースがあります。たとえば、こちらのブログなどです。
現時点では、URL フォーマットを変更した際の想定される動作として、古いドメインに直接(アドレスバーから)アクセスしようとすると、メインのデフォルト言語への301リダイレクトが発生することを把握しておくことが重要です。