2017-02-14 16 views
1

ドメインAの特定のページをhtaccessファイルのドメインBの特定のページにリダイレクトするにはどうすればよいですか?私たちは両方のドメインを所有していて、どちらも単一のサーバーを指すネームサーバーを持っています。例えばドメインAの特定のページをドメインBの特定のページにリダイレクト

domainA.com/testpage 

domainB.com/bestpageever 

次に行くべきでは私の知る限り得ているようです。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domainA.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.domainA.com$ 
RewriteRule ^(.*)$ http://www.domainB.com/bestpageever [R=301,L] 

(私は、ドメインの前にWWWを強制しています)これは私が欲しいものではありません、ドメインB、上の指定したページにドメインAのすべてのページをリダイレクトするために起こります。どのようなバリエーションを試しても、domainAの "testpage"をdomainBの "bestpageever"にリダイレクトすることはできません。

+0

どのようなパターンを試しましたか? ['RewriteRule'](https://devdocs.io/apache_http_server/mod/mod_rewrite#rewriterule)docsを見てください。 – hjpotter92

+1

でも明らかにそうではありません...また、@arkaschaの答えを見た後で、私はドキュメントを誤解しているかもしれないと思います... – wcc

答えて

1

これはおそらく、あなたが探しているものに近いです:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domainA\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domainA\.com$ 
RewriteRule ^/?testpage$ http://www.domainB.com/bestpageever [R=301] 

上記のルールは、httpサーバホストコンフィギュレーションまたは動的構成ファイル(.htaccessスタイルファイル)で動作します。

あなたはhttpサーバのホスト構成でこのようなルールを置く場合は、ルールは彼らだけが中に設定されている特定のHTTPホスト内で適用されているので、あなたは、これにそれらの規則を簡素化することができます

RewriteEngine On 
RewriteRule ^/testpage$ http://www.domainB.com/bestpageever [R=301] 

一般的なヒント:動的構成ファイル( ".htaccess")ではなく、常にhttpサーバーのホスト構成内にそのような規則を配置することをお勧めします。これらのファイルは悪名高いエラーが発生しやすく、デバッグが難しく、サーバーの速度が遅くなります。彼らは、あなたがホスト構成(本当に安いホスティングサービスプロバイダを読む)を持っていないか、独自の書き換えルールを書くことに頼っているアプリケーションを持っている場合にのみ、最後のオプションとして提供されます(これは明白なセキュリティの悪夢です)。

+1

"RewriteCond'sはおそらく次の理由で保持されます:" _Weは両方のドメインを所有していて、単一のサーバーを指しています._ "DocRootが両方で異なると確信しない限り... – hjpotter92

+1

@ hjpotter92確かに、それを指摘してくれてありがとう!必ずしも問題ではありませんが、設定に応じて1つかもしれません。 – arkascha

+1

ありがとう!それは動作します。はい、私たちの場合、docrootは同じです。残念ながら、私はレガシーシステムを扱っており、htaccessファイルメソッドを使用したままにしたいと考えています。 – wcc

関連する問題