したがって、この2つのサブサイトを別のロケールにリダイレクトする必要がありますが、ソースは同じですが、両方のドメインで有効になるのは最初の書き換えのみです。
何が起こるべきか:
example-site1.com/register ----> https://register.index.com/en-us
example-site2.com/register ----> https://register.index.com/en-gb
以下のこのコードで何が起こっているのか:
example-site1.com ----> https://register.index.com/en-us
example-site2.com ----> https://register.index.com/en-us
###########################
RewriteCond %{HTTP_HOST} ^example-site1\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.example-site1\.com
RewriteRule ^/(registration|registration/)$ https://register.index.com/en-us [L,R=301]
RewriteRule ^/(register|register/)$ https://register.index.com/en-us [L,R=301]
RewriteCond %{HTTP_HOST} ^example-site2\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.example-site2\.com
RewriteRule ^/(registration|registration/)$ https://register.index.com/en-gb [L,R=301]
RewriteRule ^/(register|register/)$ https://register.index.com/en-gb [L,R=301]
RewriteCondは、複数のルールではなく、直後のRewriteRuleにのみ影響します。したがって、上記の2番目のRewriteRuleは、上記のホスト名チェックから完全に独立しています。これらの2つのルールを1つに組み合わせる必要があります(ターゲットは常に同じURLであり、ここで一致する4つの[実際には2つ、以下を参照]異なる選択肢があるため、この場合は問題ありません)-または2番目のRewriteRuleの前にRewriteCondsを再度繰り返す必要があります。そして、2番目のブロックについても同じです。
(registration|registration/)
とにかく冗長です-書き直しに一致したものへの後方参照は必要ないので、キーワードの後にスラッシュを追加してオプションにすることができます- registration/?
。したがって、両方のケースを1つのパターンに組み合わせる場合^(registration|register)/?$
は、うまくいくはずです。(先頭のスラッシュを削除したので、最初はまったく機能していなかったはずです。.htaccessで書き換えを構成した場合、その先頭のスラッシュはその時点ですでに削除されています。)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加