サーバー上に次のようなフォルダー構造があります。
.htaccess
index.php
[website1]
[placeholder]
index.php
[website2]
[website3]
すべてのドメイン web1.com、web2.com、および web3.com がこのディレクトリにリンクしています。それらを適切なディレクトリにルーティングするためのhtaccessが好きです。したがって、web1.com は website1 に移動し、web2.com は website2 に移動します。
ただし、URL をhttp://www.web1.com/のようにして、website1 のコンテンツを表示する必要があります。
今、私は次のコードを持っています:
RewriteCond %{HTTP_HOST} ^(web1.com)$ [NC]
RewriteRule ^(.*)$ http://www.web1.com/$1
RewriteCond %{HTTP_HOST} ^(www.web1.com)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /website1/$1
RewriteCond %{HTTP_HOST} ^(www.web1.com)$ [NC]
RewriteRule ^(/?|index.php)$ website1/index.php [L]
これは機能しますが、http://www.web1.com/placeholderにアクセスすると、URL に次のように表示されます。
http://www.web1.com/website1/placeholder/
もちろん、URL をhttp://www.web1.com/placeholderとして表示することをお勧めします。記録のためにhttp://www.web1.com/placeholder/は適切なページを表示します。
どうすればこれを修正できますか? それは私を夢中にさせています。
編集(回答):
RewriteCond %{HTTP_HOST} ^(www.web1.com)$ [NC]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^website1/(.*)([^/])$ http://%{HTTP_HOST}/$1$2/
これが適切な方法かどうかはわかりませんが、うまくいくようです。