URL文字列パラメータに基づいて異なるディレクトリからWebサイトを提供します

May 10 2020

URL文字列パラメータに応じて2つの異なるバージョンからWebサイトを提供できるかどうかを知りたいです。

例:

  • サーバーに2つのインストールがあります:example.com/website-1/example.com/website-2/
  • エンドユーザーがexample.com/main/?showads=yesアクセスした場合—> Webサイトを提供するexample.com/website-1/
  • エンドユーザーがドメインにexample.com/main/アクセスします—>からWebサイトを提供しますexample.com/website-2/

注:これはリダイレクトの質問ではありません。同じURLで提供したいだけです。

psApacheサーバーでWordPressWebサイトを実行しています。

私は、PHP、WordPress、またはApache(.htaccess)構成を介した任意のソリューションを受け入れています。

回答

MrWhite May 10 2020 at 20:39

ルート.htaccessファイルの先頭で、必要な内部書き換えを実行できます。例えば:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^showads=yes$ RewriteRule ^main/$ /website-1/index.php [L]

RewriteCond %{QUERY_STRING} ^$ RewriteRule ^main/$ /website-2/index.php [L]

ユーザーが/main/?showads=yes(正確に述べられているように)要求した場合、要求はWordPressインストールインにルーティングされ/website-1/、ユーザーが要求した場合/main/(正確に-クエリ文字列なし)、要求はWPインストールインにルーティングされ/website-2/ます。(注:index.phpmod_dirにセカンダリ内部サブリクエストを発行させるのではなく、に直接書き換える必要があります。)

ただし、これはWordPressであるため、WP自体も/main/両方のWebサイトでリクエストを受け入れるように構成する必要があります(つまり、これはWPで有効なURLである必要があります)。そうでない場合、WPは404をトリガーします。

これのWP側についてさらに支援が必要な場合は、WordPressスタックでこの質問をすることを検討してください。