2

マーケティング上の理由により、アクセスしやすくするため、およびいくつかのキャンペーンを追跡するために、いくつかのバニティ URL を使用しています。残念ながら、私は管理された専用サーバーと cPanel で立ち往生しており、ルールを作成するために取った手順は次のとおりです。

  • まず、cPanel のパーク ドメインにxyz.comとを追加しましたefg.com
  • RewriteRule次に、必要なすべてのsを書きました

.htaccess

RewriteCond %{HTTP_HOST} ^xyz\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.xyz\.com$
RewriteRule ^signdirections$ "http\:\/\/xyz\.abc\.com\/en?utm_source=signdirections&utm_medium=advert&utm_campaign=xyz" [R=301,L]


RewriteCond %{HTTP_HOST} ^efg\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.efg\.com$
RewriteRule ^signdirections$ "http\:\/\/efg\.abc\.com\/en?utm_source=signdirections&utm_medium=advert&utm_campaign=efg" [R=301,L]

ここで、問題は、にアクセスしようとすると、efg のバージョンではなく、www.efg.com/signdirectionsそのバージョンにリダイレクトされることです。www.xyz.com/signredirections

なぜそれが起こっているのですか?私の直感では、同じホスト名 (HTTP_HOST) が検出されるということですが、その理由がわかりません。

4

2 に答える 2

2

ほとんどの場合、他のルールが原因で発生しています。THE_REQUEST他のルールの適用後に変化しない変数を使用することをお勧めします。

両方のルールを 1 つに結合することもできます。

RewriteCond %{HTTP_HOST} ^(?:www\.)?(xyz|efg)\.com$ [NC]
RewriteCond %{THE_REQUEST} /signdirections [NC]
RewriteRule . http://%1.abc.com/en?utm_source=signdirections&utm_medium=advert&utm_campaign=%1 [R=301,L,NE,QSA]
  • これが行の下の最初のルールであることを確認してくださいRewriteEngine On
  • 古いブラウザのキャッシュを避けるために、必ず新しいブラウザでテストしてください。
于 2014-11-21T11:57:02.833 に答える