0

サーバー上に次のようなフォルダー構造があります。

.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/

これが適切な方法かどうかはわかりませんが、うまくいくようです。

4

0 に答える 0