1

私はいくつかのウェブサイトを管理する必要があります。テスト用に、ローカル(localhost)コピーとオンラインコピーがあります。

cmsエンジンhttp://Pyrocms.comにはマルチサイトマネージャーがあり、ドメインを入力します。ブラウザでドメイン名を入力すると、中央データベースに保存されているリクエストサイトのウェブサイトが提供されます。

オンラインではこれは問題なく機能しますが、ローカルでは機能しません。入力する必要があります。

localhost/silo1/myclient1/

入力できるようにしたい

myclient1.test

私が最初に考えたのはlmhostファイルでしたが、IPアドレスだけで、サブディレクトリにマップできないことを解放しました。

以下は、Windows7のホストファイルで実行しようとしたことですが、機能しませんでした。127.0.0.1 入力したときに指示されただけですmywebsite2.test

ホストファイル-別名LMHOST

File stored @ #C:\Windows\System32\drivers\etc
lmhost/host file
127.0.0.1                   mywebsite1.test
127.0.0.1/mywebsite2/       mywebsite2.test  **#I want to do something like this**

テクノロジー:

  • OS:Windows7サーバー:WAMP 2

  • (Mod RewriteをオンにしたApache)

4

2 に答える 2

2

私があなたを正しく理解しているなら、あなたがそれを達成しようとしている唯一の方法は...

HOSTSファイル(LMHOSTSではない)を編集して、偽のドメイン名をループバックアドレス(127.0.0.1)に解決します。

127.0.0.1 myclient1.test
127.0.0.1 myclient2.test

次に、mod_rewrite条件とルールを含む.htaccessファイルを使用して(異なるWebサイトごとに)ホストヘッダーと一致させ、リクエストを適切なサブフォルダー/サブURLに内部的に書き換えます。

RewriteCond %{HTTP_HOST} ^myclient1\.test$ [NC]
RewriteRule ^/*(.*)$ http://localhost/silo1/myclient1/$1 [NC]

RewriteCond %{HTTP_HOST} ^myclient2\.test$ [NC]
RewriteRule ^/*(.*)$ http://localhost/silo2/myclient2/$1 [NC]

または、(内部リダイレクトではなく)完全リダイレクトを実行する場合...

RewriteRule ^/*(.*)$ http://localhost/silo1/myclient1/$1 [R=301,NC]
于 2012-12-07T16:23:46.713 に答える
1

HOSTファイルを編集します。

127.0.0.1 myclient1.test
127.0.0.1 myclient2.test

httpd.confファイルに追加しました

NameVirtualHost *:80

<VirtualHost *:80>
   ServerName myclient1.test
   DocumentRoot C:\wamp\www\silo1\myclient1\
</VirtualHost>

<VirtualHost *:80>
   ServerName myclient2.test
   DocumentRoot C:\wamp\www\silo1\myclient2\
</VirtualHost>
于 2012-12-08T03:33:18.433 に答える