1

書き直す必要があります:

  • laptop.example.comwww.example.com/?c=1
  • phone.example.comwww.example.com/?c=2

動的である必要はありません。ハードコードされた一握りの書き直しが欲しいだけです。

現在、私はこれを試していますが、書き換えではなく、リダイレクトしています。

RewriteCond %{HTTP_HOST} ^laptop.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/?c=1$1 [QSA,L]

mod rewrite構文は私にとって非常に困惑しているので、それから頭や尻尾を作ることはできません。

301リダイレクトを実行したくありません。パラメータなしで元のサブドメインURLが表示されるように、URLを書き換えたいのですが、内部的には後者として送信されます。

.htaccessファイルにはすでにいくつかの書き換えがあります。これらは、この書き換えに適用する必要があります。

私はSOで約12の同様の質問を見てきました。しかし、私は答えを私の特定のニーズに変換することができませんでした。何が欠けていたのか、何が間違っていたのかがわかりませんでした。だからこそ、私は自分のシナリオのためにそれをもう一度求めています。


作業コード:

RewriteCond %{HTTP_HOST} ^laptop.example.com$ [NC]
RewriteRule ^/?$ ?c=1$1 [QSA,L]

うまくいけば、これより下の他の書き換えが再びそれを台無しにする状況に遭遇しないでしょう!

4

1 に答える 1

1

http://またはhttps://、書き換えルールのターゲットにあるものはすべて、暗黙的に302リダイレクトされるため、ルールはリダイレクトされます。2つのホストが異なるWebサーバーまたはドキュメントルートにある場合、ブラウザのアドレスバーが変更されないようにするには、リバースプロキシを使用する必要があります。しかし、(実際のWebサイトを見ると)両方のホストが同じサーバー上にあり、同じルートを共有しているように見えます。http://www.findbyall.comしたがって、ターゲットからを取り除く必要があります。

RewriteCond %{HTTP_HOST} ^laptop.findbyall.com$ [NC]
RewriteRule ^(.*)$ /?c=1$1 [QSA,L]

すべてに一致させたくない場合は、^(.*)$正規表現をに変更することもできます。^/?$

于 2013-01-05T07:03:34.020 に答える