4

Ubuntu で XAMPP を実行しており、プロジェクト用の仮想ホストを作成して、サーバーのルート ディレクトリ (.local など) に tld を割り当て、その中のフォルダーに URL を介して としてアクセスできるようにしたいと考えていますhttp://foldername.local

また、.htaccess を使用してサーバー ルートhttp://someotherdomain.localのパスにリダイレクトするのは、どれほど複雑でしょうか?/foldername

4

1 に答える 1

8

私は自分でそれを行うことができました。それを行うことは可能ですが、DNS サーバーをインストールする必要があります。

注: ローカル ドメインとして .dev を使用することにしたので、次の例では、そのdev部分は選択したドメインを参照します。心に留めておきます。

DNS サーバーのインストールと構成

どちらでもかまいませんが、適切に構成する方法を知る必要があります。構成は、選択した DNS サーバーによって異なります。私はdnsmasqに行きました。軽量でとても便利です。

Ubuntuユーザーにとって重要な注意事項は、Ubuntu 11.10 以降、 dnsmasq-baseと呼ばれる軽量バージョンが既にインストールされているため、インストール中に競合が発生することです。これを回避する方法は他にもたくさんあるので、ここでは説明しません。

DNS サーバーをインストールしたら、目的のドメインと同じアドレスをリッスンするように構成する必要があります。

私の場合dnsmasq/etc/dnsmasq.conf 、これは行番号62を開いてこれに変更することを意味しました:address=/dev/127.0.1.1

Web サーバーの構成

ある種のサーバー ソフトウェアが既にインストールされていると仮定すると、いくつかの微調整を行う必要があります。

まず、hostsファイルを編集して、目的のドメインをローカルホストにマップする必要があります。

私のXAMPP for Linux on Ubuntuの場合、これは、 /etc/hosts行を開いて変更したことを意味します

127.0.0.1 localhost
127.0.1.1 tomica-ubuntu

127.0.0.1 localhost
127.0.1.1 tomica-ubuntu dev

http://devこれにより、ローカル サーバーにリダイレクトされます。

次に、次のように、いくつかの特定のオプションを使用して新しい仮想ホストを作成します。

私の場合、これはファイルを開い /opt/lampp/etc/extra/httpd-vhosts.confて末尾に追加することを意味します。

<VirtualHost *:80>
    DocumentRoot "/opt/lampp/htdocs/dev"
    ServerName dev
    ServerAlias *.dev

    <Directory /opt/lampp/htdocs/dev>
        AllowOverride All
    </Directory>
</VirtualHost>

簡潔にするために、このコードについては説明しません。ドキュメントも入手できるからです。

これがすべて完了したら、DNS サーバーと Web サーバーを起動するか、既に実行されている場合は再起動します。

.htaccess を構成する

新しく作成したホストのルート フォルダーを開きます。それはあなたので定義されたフォルダです。私の場合、それは/opt/lampp/htdocs/dev. そこにファイルを作成し、.htaccessこれを入れます:

# Specify order of index files; if none exist, show files list
  DirectoryIndex index.php index.html

# Interpret .html files as .php scripts
  AddHandler php5-script .php .html

# THE MAGIC - Redirect subdomains of .dev to their respective folders
  RewriteEngine on
  Options +FollowSymlinks
  RewriteBase /

  RewriteCond %{HTTP_HOST} !^www\.dev$ [NC]
  RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.dev(.*)?$ [NC]
  RewriteRule !^%2\.dev%3?/$ http://dev/%2%{REQUEST_URI}/ [P]

繰り返しますが、これをすべて説明すると、あまりにも多くのスペースと時間が必要になります。コピーして貼り付けるだけです。心配する必要はありません :) ただし、mydevをドメイン名に選択したものに変更することを忘れないでください。

以上です!http://folder.dev/これで、http://www.folder.devhttp://folder.dev/file.htmlhttp://folder.dev/subfolder/document.txtなどアドレスを使用してプロジェクトを参照できるはずです

おまけとして、もう 1 つだけアドバイスを追加します。これを行った理由は、Laravel と WordPress のプロジェクトをより簡単に開発できるようにするためです。ただし、Laravel では、URLhttp://lvproject.dev/を の場所にリダイレクトする必要があり/lvproject/publicます。そして、.htaccessこれがまさにそれを可能にするファイルです。/lvprojectフォルダーを開き、ファイルを作成して、この.htaccessコードをその中に配置します。

RewriteBase /lvproject/

RewriteCond %{REQUEST_URI} lvproject/index\.php [NC]
RewriteRule index\.php(.*)$ public/ [L]

このソリューションの 2 つの欠点は次のとおりです。1)RewriteBase新しいプロジェクトごとにルールを新たに設定する必要があります (つまり、.htaccess新しいプロジェクトごとに手動で作成する必要があります)。2) あなたのプロジェクトは と の両方から利用できるようになりhttp://lvproject.dev/ますhttp://lvproject.dev/public/

于 2012-09-24T10:55:09.643 に答える