0

1 つのドメインにすべて書き換えたい複数のドメインがあります。ユーザーが入力したようにURLを表示したいので、リダイレクトしたくありません。たとえば、www.example.comと入力した場合、www.sample.com/default.phpからページをロードしたい?from=例

www.site.com/var1/var2 が www.site.com/index.php?one=var1&two=var2 をロードしている場合、私は少し書き直しました。

.htaccess ファイルだけで探していることを実行できますか? 私は周りを見回してみましたが、探しているものを正確に見つけることができませんでした

ありがとう

4

2 に答える 2

1

サイトが異なるサーバーでホストされているか、共通のドキュメント ルートを共有していない場合は、mod_proxy に依存する必要があり、P書き換えルール フラグを使用できます。たとえば、www.example.comのドキュメント ルートにある htaccess ファイルの次のルールは次のとおりです。

RewriteCond %{HTTP_HOST} ([^.]+)\.com$ [NC]
RewriteRule ^/?$ http://www.sample.com/default.php?from=%1 [L,P]

リクエストhttp://www.example.com/を受け取り、目に見えないようにプロキシしhttp://www.sample.com/default.php?from=exampleます。ブラウザの URL アドレス バーは残りhttp://www.example.com/ます。

ルールはリクエスト URI に対してのみ一致することに注意してください/。もっとやりたい場合は、正しい正規表現とグループ化を作成する必要があります。

sample.com サイトにリダイレクトがある場合はProxyPassReverse、リダイレクトを書き換える必要があります。Cookie が含まれているかどうかも参照ProxyPassReverseCookieDomainしてください。ProxyPassReverseCookiePath

代わりに仮想ホストまたはサーバー構成でこれを実行できる場合はProxyPass、mod_rewrite の代わりに単純に使用することを検討してください。ディレクティブはProxyPasshtaccess ファイル内では機能しません。


編集:

すべてが同じドキュメント ルートにあるため、何もプロキシする必要はありません。単に:

RewriteCond %{HTTP_HOST} !^www\.sample\.com$ [NC]
RewriteCond %{HTTP_HOST} ([^.]+)\.com$ [NC]
RewriteRule ^/?$ /default.php?from=%1 [L]
于 2012-12-28T02:42:33.347 に答える
0

私はオンラインジェネレーターを使用しています。このジェネレーターを使用してください: mod-rewrite

于 2012-12-28T02:33:24.347 に答える