1

教祖からの助けは大歓迎です。

クライアントの WordPress ホームページを 1 つの TLD (例: domain.eu) に配置し、他のすべてのページ/ディレクトリを別の TLD 拡張子 (例: domain.com/everything-else) に 301 するように依頼されました。なぜこれが要求されているのかはわかりませんが、明らかにクライアントにとって重要であり、私はそれを機能させるために頭を叩いています。何か案は?

例:

URL がいずれかのドメイン TLD のルートにヒットした場合、.eu ドメイン (http://domain.eu/) にリダイレクトする必要がありますが、それ以外はすべて .com ドメイン (http://domain.com/) にリダイレクトする必要があります。

ルーツ:

http://domain.com  OR
http://domain.net  OR
http://domain.edu/index.php OR
http://domain.org/index.html  OR
http://domain.* (* = any extension)

301 宛先: http://domain.eu

ただし、それ以外はすべてディレクトリ構造を維持し、別の TLD (http://domain.com) にリダイレクトする必要があります。例..

から:

    http://domain.net/blog/category

301 宛先:

    http://domain.com/blog/category

から:

    http://domain.org/blog/category/post

301 宛先:

    http://domain.com/blog/category/post

私が試したことはすべて、リダイレクト ループに陥るか、部分的にしか成功しません。たとえば、以下は WordPress リダイレクトの上に配置され、すべての宛先 URL がヒットするという意味で正しくリダイレ​​クトされますが、ルート (ホームページ) にはリダイレクト ループ エラーがあります。何かご意見は?

RewriteEngine On
RewriteBase /
Options +FollowSymLinks

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RedirectMatch ^/$ http://domain.eu

RewriteCond %{REQUEST_URI} !^/$ [NC]
RewriteCond %{HTTP_HOST} ^domain.com.au$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain.eu$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain.de$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

私は htaccess に少し慣れていないので、どうすれば間違っているのか教えてください。ありがとう!

4

2 に答える 2

0

WordPressは、WordPress構成のドメインと一致しないURLをリダイレクトします。WPプラグインを作成するか、プロキシを使用して他のドメインのホームページを取得する必要があります。

于 2012-05-22T05:14:12.120 に答える
0

redirectmatch を次のように置き換えてみてください。

RewriteCond %{HTTP_HOST} !^domain.eu$ [NC]
RewriteRule ^/?$ http://domain.eu/ [R=301,L]
于 2012-05-22T08:22:47.793 に答える