表示されたリンクを取得し、以下のように宛先リンクにルーティングするように.htaccessファイルを設定しようとしています
表示されたリンクhttp://www.my-website.com/click-4559226-10388358?url=https%3A%2F%2Fdestination-website2.com%2FItem.php%3Fid%3D44350396%26sld%3DA6D7A632-821E-4b78-ACD0-147658B77BD6
宛先リンクhttp://www.destination-website.com/click-4559226-10388358?url=https%3A%2F%2Fdestination-website2.com%2FItem.php%3Fid%3D44350396%26sld%3DA6D7A632-821E-4b78-ACD0-147658B77BD6
事実上、変更されるのは最初のURL(http://www.my-website.com
)だけで、その後はすべて同じです。
これは可能ですか?誰かが私がそれについてどうやって行くか簡単に説明できますか?
*明確にするために、my-website.com
からすべてをリダイレクトしたくありません。 http://www.my-website.com/click-4559226-10388358
で始まるリンクのみ
.htaccess
ファイルでこれを試してください:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_Host} ^www.olddomain.com$[OR]
RewriteCond %{HTTP_Host} ^olddomain.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
クエリ文字列を保持していない場合は、上記のコードの最後の行を
RewriteRule / http://www.newdomain.com/?%{QUERY_STRING} [R=301,L]
編集:
ルールをwww.my-website.com/click-4559226-10388358
のみに制限する場合は、上記のコードの最後の行を次のように変更してください。
RewriteRule ^click\-([0-9]+)\-([0-9]+)$ http://www.newdomain.com/click-$1-$2?%{QUERY_STRING} [R=301,L]
http://www.my-website.com/click-4559226-10388358
で始まるリンクのみ
URLパスが(正確に)/click-4559226-10388358
であるリンクのみを別のドメインの同じ URLにリダイレクトし、クエリ文字列を維持しながら、次のようなことを行うことができます。ドキュメントルートの.htaccessファイル。
これはmod_rewriteを使用し、他のディレクティブがある場合はファイルの先頭近くに来るはずです。
RewriteEngine On
RewriteCond %{HTTP_Host} ^(www\.)?my-website\.com$ [NC]
RewriteRule ^click-4559226-10388358$ http://www.destination-website.com/$0 [R=302,L]
ソースドメインと宛先ドメインが異なるサーバーにある場合は、RewriteCond
ディレクティブを省略できます。
302
(一時的)リダイレクトを301
(永続的)に変更します(正常に機能していることが確認できたら)。永続的なリダイレクトはブラウザによってキャッシュされるため、テスト時に問題を引き起こす可能性があります。
変更されているのがクエリ文字列だけである場合、mod_rewrite
なしでこれを行うことができるはずです。単純なRedirect
ディレクティブを使用する方が効率的であり、多くの場合、RedirectRule
と一致する正規表現よりもはるかに高速です。これは、サイトのルートにある.htaccess
ファイル内のRedirect
ステートメントです。
Redirect /click-4559226-10388358 http://www.destination-website.com/click-4559226-10388358
W3dが指摘したように、永続的なリダイレクトに変更する前にテストする必要があります。
Redirect 301 /click-4559226-10388358 http://www.destination-website.com/click-4559226-10388358
Redirect
およびRedirectMatch
は、クエリ文字列を変更せずにターゲットURLに渡します。
Www.my-website.comで:
Redirect permanent / http://www.destination-wabsite.com/
サーバーでmod_rewriteが有効になっていると仮定すると、次のようなものを配置できます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_Host} ^www\.my-website\.com$ [NC]
RewriteRule ^(.*)$ http://www.destination-website.com/$1 [QSA,L]
</IfModule>
これにより、www.my-website.comへのリクエストがwww.destination-website.comにリダイレクトされます。 [NC]は大文字と小文字を区別しないモードで動作するようにApacheに指示し、[QSA、L]はクエリ文字列パラメーターを維持するように指示し、他の規則に従わないように指示します。詳細は ApacheのWebサイト で見つけることができます。