教祖からの助けは大歓迎です。
クライアントの 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 に少し慣れていないので、どうすれば間違っているのか教えてください。ありがとう!