2 つの別々のサイトを指すスプラッシュ ページを持つプロジェクトがあります。サイトは同じサーバーでホストされており、メンテナンスを容易にするために別のフォルダーに配置する必要があります。
フォルダ構造は次のようになります。
/home/user1234/public_html
/splash/
index.html
css/
images/
...
/site1/
index.php
css/
images/
...
/site2/
index.php
css/
images/
...
メイン サイト (site1 と site2、おそらく 2 つの Wordpress インストール) は、サブドメインではなく、url 構造のようなサブディレクトリの下でアクセスできる必要があります。したがって、URL 構造は次のようになります。
www.MySite.tld --> Splash
www.MySite.tld/site1 --> Site1
www.MySite.tld/site2 --> Site2
ここで、これらの URL をサーバー上の対応するディレクトリに一致させる必要があります。しかし、これを行う方法が正確にはわかりません。これは共有ホスティング サーバーなので、htaccess と mod_rewrite しか使用できません。
そのため、Web ホストの管理インターフェイスで、www.MySite.tld を /splash フォルダーに指定しました。次に、そのフォルダーに .htaccess を配置し、"仮想フォルダー" /site1 および /site2 への要求を次のように書き換えます。
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(site1|site2)/?$ [NC]
RewriteRule ^(.*)$ /home/user1234/public_html/%1 [L]
私の知る限り、mod_rewrite だけでは現在の DOCUMENT_ROOT (/splash) 以外のファイルに書き換えることはできないため、これは機能しません。そこで、www.MySite.tld の 1 レベルを /splash ではなく /public_html に指定しようとしました。/site1 と /site2 へのリクエストは確実に機能しますが、/ へのリクエストはデフォルトで 404 を返します。これは、上記のフォルダー構造でわかるように、そこにインデックス ファイルがないためです。そこで、次のルールで .htaccess を /public_html の 1 レベル上に配置しました。
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/?$ [NC]
RewriteRule ^(.*)$ /splash [L]
これでスプラッシュ ページにアクセスできるようになりましたが、URL の最後に「/splash」が追加されてしまいます。
私は何時間も解決策を探していて、これまでに見つけた提案の多くを試しましたが、どれも私の問題を解決しませんでした. 私が最後に試みたのは、 mod_rewrite でいくつかの仮想ホストをセットアップすることでしたが、それも機能させることができませんでした。おそらく、mod_rewrite やその他すべての apache について、まだ十分に確認できていません。;-)
または、正しい RewriteBase を設定するなどの基本的なものが欠けているのかもしれません...この URL + フォルダー構造は、mod_rewrite のみで実現できますか? はいの場合、どのような書き換えルールを設定する必要がありますか? そうでない場合、使用できる代替手段はありますか? どんな助けでも大歓迎です。