2

qtranslate を使用して WP ブログを運営しています。複数の言語で投稿を作成できます。

1. qtranslate を使用しない URL の例:

2. ローカライズされたコンテンツを含む URL の例:

残念ながら、検索エンジンなどはまだ私の古いリンク (1.) を記憶しており、これらはまだアクセス可能です。したがって、「www.mysite.com/post1」はリダイレクトなしで英語のコンテンツを表示するようになりました。しかし、それがすべきことは、「www.mysite.com/en/post1」に 301 人のユーザーがアクセスすることです。

したがって、URL に / en /post1 または / de /post1があるかどうかを基本的にチェックし、そうでない場合はフォールバック / en /post1 URLにリダイレクトするルールが必要になります。"/ shop " は実際のサブディレクトリであり、言語情報を前に付ける必要がないため、例外が 1 つあります。

- アップデート -

やったよ!!!それは実際には楽しかったのですが、理解するのにかなりの時間がかかりました。

RewriteRule ^$ en [R=301,L]
RewriteRule ^([a-z]{2})/{1}$ $1 [R=301,L]
RewriteRule ^([a-zA-Z0-9\-\_]{3,})(/|$)$ en/$1 [R=301,L]

おそらくこれを行うためのより良い方法がありますが、それはうまくいきます。最初の助けをありがとう!

4

3 に答える 3

1

ユニバーサル RewriteRule を使用し、RewriteConds を使用して、書き換えたくないケースを排除しようとしましたか?

次のようになります。

RewriteCond %{REQUEST_URI} !^/shop(/|$)
RewriteCond %{REQUEST_URI} !^/(en|de)(/|$)
RewriteRule ^(.*)$ /en/$1 [R=301]

しかし、Camilo の提案に従って、その中間行を次のように変更できます。

RewriteCond %{REQUEST_URI} !^/[a-z]{2}(/|$)

投稿のパーマリンクが 3 文字未満にならないことを確認できる限り (それが可能かどうかを確認できるほど、私は WordPress に精通していません)。

于 2012-02-10T04:43:46.427 に答える
0

メタカノニカルを使用するだけではどうですか?

このような:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish" />

詳細: http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html

于 2012-02-10T16:02:31.917 に答える
0

やったよ!!!それは実際には楽しかったのですが、理解するのにかなりの時間がかかりました。

RewriteRule ^$ en [R=301,L]
RewriteRule ^([a-z]{2})/{1}$ $1 [R=301,L]
RewriteRule ^([a-zA-Z0-9\-\_]{3,})(/|$)$ en/$1 [R=301,L]

おそらくこれを行うためのより良い方法がありますが、それはトリックを行います

-- これには、より長い URL のサポートが含まれます ---

RewriteRule ^([a-zA-Z0-9\-\_]{3,}(/|$).*)$ en/$1 [R=301,L]
RewriteRule ^(.+[^/])/$ http://%{HTTP_HOST}/$1 [R=301,L]
于 2012-02-11T15:15:12.870 に答える