トップドメイン(http://x.com
)(DNS/.htaccess/else?)を設定して別のドメイン(http://y.com
)にリダイレクトすることはできますか?http://x.com/subdir/index.html
をナビゲートすると、 d http://x.com
のサブディレクトリ内のファイルを参照してください。
要約
方法:x.com -> y.com
(リダイレクト)x.com/sub/index.html
-> x.com/sub/index.html
(リダイレクトなし)
使用例
私のビジネス名であるsanderschaeffer.nl
とiscs.nl
があります。 1つは自分の個人名、もう1つはブランド名です。ユーザーがsanderschaeffer.nl
に移動すると、ドメインはiscs.nl
に転送(301)されます。ただし、1つのタイプ(つまり)sanderschaeffer.nl/clientTestSite/
は、その場所にとどまります。したがって、トップレベルのみが301リダイレクトを取得しますが、サブディレクトリを含むトップドメインを入力しても、リダイレクトは行われません。
「メインサイトのサブディレクトリにあるテストサイトを使用しないのはなぜですか(iscs.nl/
)?」 sanderschaeffer.nl
が現在ホストされている新しいサーバーを(一時的に)テストしているからです。 :)
「サブドメイン」ではなく「サブドメイン」を意味すると仮定すると(例のとおり)、x.com
の.htaccessファイルで次のようなものを試してください。
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/sub/
RewriteRule (.*) http://y.com/$1 [R=301,L]
(301)すべてをy.com
にリダイレクトします。URIは開始しないで/sub/
を使用します。
これはy.com
の対応するURLにリダイレクトすることに注意してください。たとえば、http://x.com/foo/bar
はhttp://y.com/foo/bar
にリダイレクトします。 (文字通りx.com/
をy.com/
にリダイレクトするだけではなく?)
PDATE#1:以下のコメントに照らして、次の説明で十分かもしれません。これにより、http://x.com/
(およびルートURLのみ)がy.com
にリダイレクトされます。その他x.com/something
はx.com
のままです。
RewriteEngine On
RewriteRule ^$ http://y.com/ [R=301,L]
ただし、これは有効なサブディレクトリを特にチェックしないことに注意してください。 URLにパスコンポーネントがあると、URLはx.com
のままになります。
有効/既知のサブディレクトリを特に確認する必要がある場合は、上記の最初の例のようにRewriteCond
ディレクティブを使用します。
PDATE#2:別の可能性は、がサブディレクトリに似ている何かをチェックすることです。 /anything/
およびそれ以外の場合はリダイレクトします。例えば:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/[a-z0-9_-]+/
RewriteRule (.*) http://y.com/$1 [R=301,L]
これにより、x.com/
はy.com/
に、x.com/file
はy.com/file
にリダイレクトされますが、x.com/subdir/file.php
はリダイレクトされません。