.htaccess
に少し問題があります。たとえば、test.example.com
に移動すると、フォルダーは/sub/test
にあります。ただし、test.example.com/sub/test
と表示されます。 .com
の後のパスを非表示にするにはどうすればよいですか?または、sub
フォルダー内のすべてのフォルダーがサブドメインであるように、Apacheでそれを行う方法はありますか?
どうすればいいのかわかりません。
私はこれを使用しています:
RewriteCond %{HTTP_Host} ^((?!www\.).+?)\.example\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/%1/$1 [L]
編集:sub
フォルダーに作成されたすべてのフォルダーをサブドメインとして自動的に作成したい。ユーザーがフォルダを作成するように、サブドメインです。
ルールを削除して、次のようにします。
<VirtualHost IP>
ServerName test.example.com
DocumentRoot /whatever/sub/test
(whatever
を正しいパスに、IP
を仮想ホストの構成方法に基づいて関連するIP /ポートに置き換えてください)
動的仮想ホストについては、モジュールmod_vhost_alias
http://httpd.Apache.org/docs/2.4/mod/mod_vhost_alias.html )をご覧ください。ドキュメントから引用しています:
For simple name-based virtual hosts you might use the
following directives in your server configuration file:
UseCanonicalName Off
VirtualDocumentRoot "/usr/local/Apache/vhosts/%0"
A request for http://www.example.com/directory/file.html will be
satisfied by the file
/usr/local/Apache/vhosts/www.example.com/directory/file.html.
それ以外の場合、書き換えルールでは、[P]をフラグとして追加するだけで機能する場合がありますが、一般的なルールとして、物事を行うより簡単な方法を見つけて、そうでない場合にのみ書き換えを使用することを常にお勧めします(複雑さのため)それが追加されます)。