0

私のローカルホストでは、cms用のモジュールを開発しています。

したがって、私はそのようなURLをたくさん持っています:

cart.cfox.dev  
blog.cfox.dev  
orders.cfox.dev  

どのマップに

/ var / www / cfox / modules / cart
/ var / www / cfox / modules / blog
/ var / www / cfox / modules /orders

新しいモジュールをセットアップするたびに、新しい仮想ホストを作成します。

しかし、それらはすべて同じですが、1つの単語が変更されています。

私が疑問に思っていたのは、1つの仮想ホストでこれらすべてを処理する方法があるかどうかです。

もう1つは、hostsファイルがいっぱいです

127.0.0.1 cart.cfox.dev
127.0.0.1 blog.cfox.dev
127.0.0.1orders.cfox.dev

そこで同じことができますか?

4

2 に答える 2

1

を使用してそれを行うことができますmod_rewrite

デフォルトのApache仮想ホストをDocumentRootinでセットアップし、/var/www次の場所に配置します.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.dev$ [NC]
RewriteCond %{REQUEST_URI} !^/.+/modules/.+/.*$
RewriteRule .* /%2/modules/%1%{REQUEST_URI} [QSA,L]

確かに、あなたは確認する必要があります、あなたのapacheはファイルを読み取り.htaccessます(AllowOverride

于 2012-12-05T21:30:33.907 に答える
1

これらの仮想ホストを処理する最良の方法は、VirtualDocumentRootだと思います。特にApache2.4では、私が知っているように、DocumentRootはもう間違っていません。

UseCanonicalName Off
VirtualDocumentRoot /var/www/cfox/modules/%1

<Directory "/var/www/cfox/modules/*">
    # Apache < 2.4
    <IfModule !mod_authz_core.c>
        Allow from all
    </IfModule>
    # Apache >= 2.4
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
</Directory>

そこで同じことができますか?

残念だけど違う。

于 2012-12-05T21:17:29.040 に答える