2016-06-11 16 views
1

私は今購入したドメインのブログを開始しており、別のブログをサブドメインとして設定したいと考えています。URLをリダイレクトするHTACCESS

今、このセカンダリブログが離陸すれば、近い将来にはうまくいきたいと思っています。私はそれを自分のドメインに設定したいと思いますが、新しいURLへの既存のURLを持っています。

私はこのようなフォルダ構造を持っている:

domain.com >>> htaccess . index.php . about.php . blog/ . features/ 

マイBlogFeaturesフォルダもhtaccessファイルと、自分のindexページ+他の関連するPHPページが含まれています。

メインドメインdomain.comの下にあるプライマリhtaccessファイルのみを使用して新しいドメインにリダイレクトできるのか、各サブフォルダ内のhtaccessを編集する必要があるのだろうかと思いました。

これを行うにはどのような方法がありますか、ある程度、これはうまくいくでしょうか?

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newblog.com/$1 [R=301,L] 

誰かが古いドメインにアクセスするときに、それは新しいものに直接になります。

+0

'のRewriteRule^HTTPに移動しようとするたびに、その後からはnewdomain.comに直接行くことができる上のブラウザに指示する手段とそれは – hjpotter92

+0

そして、これは**プライマリ** htaccessに入りますか?つまり、他のすべてのファイルとフォルダを削除して、サブドメインに1つの 'htaccess'を置くことができますか? –

+0

はい!それだけです。 – hjpotter92

答えて

1

はい、あなたがする必要があるだろうすべては、以下を使用しています。

+0

注意してください。このルールは、メインブログのクエリを含むすべてのリダイレクトを行います。あなたが望むのは、あなたのサブドメインへのリクエストだけをリダイレクトすることです。そのためには書き換え条件が必要です(条件が満たされた場合にのみリダイレクト)。私の回答を参照してください – BeetleJuice

0

サブドメインsub.mydomain.comnewdomain.comに移動すると、htaccess mod_rewriteモジュールを使用してサブドメインから新しいドメインにクエリをリダイレクトできます。古いドメインを制御するトップレベルのhtaccessファイルにルールを置きます。新しいドメインがwww接頭辞を使用しない場合は、単に書き換えルールからそれを削除

Options +FollowSymLinks 
# turn on mod_rewrite 
RewriteEngine On 
RewriteBase/

# only redirect if query is for the sub domain (non case-sensitive match) 
RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ [NC] 

# rewrite all urls (that match the subdomain host) to new domain, 
# be sure to include the original path and query string 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [QSA,L,R=301] 

:上記の例は、ドメインと、それはようなものになるだろう。 QSAは、クエリ文字列(?文字の後のURLの一部)を送信するようにサーバーに指示します。 Lはhtaccessドキュメントの処理を停止することを意味します。すなわち `//new-domain.com% {REQUEST_URI} [R、L]:R=301は、ユーザがsub.mydomain.com

+0

これで、ユーザーがhttp://old-domain.com/features/interviews/1111/an-interview -with-a-band'の場合、自動的にhttp:// new-domain.com/features/interviews/1111/an-interview-with-a-bandにリダイレクトされます。 –

+0

正確ではありません。あなたは、OPの中で、セカンダリブログだけをサブドメインから新しいサイトにリダイレクトしたいと言っていました(ベースドメインからメインブログをリダイレクトせずに)?'old_domain.com 'に行くユーザーはリダイレクトされません(彼女は' RewriteCond'条件には合致しませんが、 'subdomain.old_domain.com'に行くユーザーはリダイレクトされます)。さらに、上記のルール'subdomain.olddomain.com/path?post = 123'は' newdomain.com/path?post = 123'にリダイレクトする必要があります。そのため、私は 'QSA'フラグを持っていますルール – BeetleJuice

+0

ここでQSAを使用する必要はありません。QSAは、ターゲットパスにもクエリ文字列が含まれている場合に役立ちます。 – starkeen

関連する問題