web-dev-qa-db-ja.com

仮想ホスト内にエイリアスディレクトリを作成する

チェックしました herehereherehere 、および- こちら この質問をする前に。私の検索スキルは弱いと思います。

WampServer version 2.2eを使用しています。仮想ホスト内の仮想パスが必要です。私が持っている2人のホストを言ってみましょう。

プライマリ仮想ホスト(ローカルホスト)

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "C:/Wamp/www"
</VirtualHost>

マイアプリの仮想ホスト

<VirtualHost *:80>
    ServerName apps.ptrl
    DocumentRoot "C:/Wamp/vhosts/ptrl/apps"
    ErrorLog "logs/apps-ptrl-error.log"
    CustomLog "logs/apps-ptrl-access.log" common
    <Directory "C:/Wamp/vhosts/ptrl/apps">
        allow from all
        order allow,deny
        AllowOverride All
    </Directory>
    DirectoryIndex index.html index.htm index.php
</VirtualHost>

私のブログのバーチャルホスト

<VirtualHost *:80>
    ServerName blog.praveen-kumar.ptrl
    DocumentRoot "C:/Wamp/vhosts/ptrl/praveen-kumar/blog"
    ErrorLog "logs/praveen-kumar-ptrl-error.log"
    CustomLog "logs/praveen-kumar-ptrl-access.log" common
    <Directory "C:/Wamp/vhosts/ptrl/praveen-kumar/blog">
        allow from all
        order allow,deny
        AllowOverride All
    </Directory>
    DirectoryIndex index.html index.htm index.php
</VirtualHost>

今の私の要件は、http://apps.ptrl/blog/http://blog.praveen-kumar.ptrl/が同じディレクトリであることです。私が考えたことの1つは、blogフォルダー内のappsフォルダーを移動することですが、Gitと接続されており、他のものがそこにあるため、移動することはできませんフォルダ。

そこで、aliasVirtualHostを次のように作成することを考えました。

<VirtualHost *:80>
    ServerName apps.ptrl
    DocumentRoot "C:/Wamp/vhosts/ptrl/apps"
    ErrorLog "logs/apps-ptrl-error.log"
    CustomLog "logs/apps-ptrl-access.log" common
    <Directory "C:/Wamp/vhosts/ptrl/apps">
        allow from all
        order allow,deny
        AllowOverride All
    </Directory>
    DirectoryIndex index.html index.htm index.php

    # The alias to the blog!
    Alias /blog "C:/Wamp/vhosts/ptrl/praveen-kumar/blog"
    <Directory "C:/Wamp/vhosts/ptrl/praveen-kumar/blog">
        allow from all
        order allow,deny
        AllowOverride All
    </Directory>
</VirtualHost>

しかし、http://apps.ptrl/blogにアクセスしようとすると、Error 403 Forbiddenページが表示されます。

Forbidden

私は正しいことをしていますか?アクセスログとエラーログを確認する必要がある場合は、次の場所にあります。

# Access Log
127.0.0.1 - - [14/Oct/2012:09:53:11 +0530] "GET /blog HTTP/1.1" 403 206
127.0.0.1 - - [14/Oct/2012:09:53:11 +0530] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [14/Oct/2012:09:53:53 +0530] "GET / HTTP/1.1" 200 6935
127.0.0.1 - - [14/Oct/2012:09:53:53 +0530] "GET /app/blog/thumb.png HTTP/1.1" 404 216
# Error Log
[Sun Oct 14 09:53:11 2012] [error] [client 127.0.0.1] client denied by server configuration: C:/Wamp/vhosts/ptrl/praveen-kumar/blog
[Sun Oct 14 09:53:11 2012] [error] [client 127.0.0.1] File does not exist: C:/Wamp/vhosts/ptrl/apps/favicon.ico
[Sun Oct 14 09:53:53 2012] [error] [client 127.0.0.1] File does not exist: C:/Wamp/vhosts/ptrl/apps/app/blog, referer: http://apps.ptrl/

助けを熱心に待っています。必要に応じて、詳細情報を提供する準備ができています。


更新#1: felipsmartins の指示に従ってVirtualHosts宣言を変更

<VirtualHost *:80>
    ServerName apps.ptrl
    DocumentRoot "C:/Wamp/vhosts/ptrl/apps"
    ErrorLog "logs/apps-ptrl-error.log"
    CustomLog "logs/apps-ptrl-access.log" common
    # The alias to the blog!
    Alias /blog "C:/Wamp/vhosts/ptrl/praveen-kumar/blog"
    <Directory "C:/Wamp/vhosts/ptrl/praveen-kumar/blog">
        allow from all
        order allow,deny
        AllowOverride All
    </Directory>
    <Directory "C:/Wamp/vhosts/ptrl/apps">
        allow from all
        order allow,deny
        AllowOverride All
    </Directory>
    DirectoryIndex index.html index.htm index.php
</VirtualHost>

アップデート#2:別の問題:

サイトにアクセスできます。物理リンクは現在機能しています。すなわち、http://apps.ptrl/blog/index.phpを開くことはできますが、http://apps.ptrl/blog/view-1.ptfに変換されるhttp://apps.ptrl/blog/index.php?page=view&id=1は開けません。解決策はありますか?

AliasDocumentRoot 以外のディレクトリに作成する場合、ターゲットディレクトリへのアクセスを明示的に許可する必要がある場合があります。

<VirtualHost *:80>
    ServerName apps.ptrl
    DocumentRoot "C:/Wamp/vhosts/ptrl/apps"
    ErrorLog "logs/apps-ptrl-error.log"
    CustomLog "logs/apps-ptrl-access.log" common

    # Puts here, before Directory directive :) 
    Alias /blog "C:/Wamp/vhosts/ptrl/praveen-kumar/blog"

    <Directory "C:/Wamp/vhosts/ptrl/apps">        
        allow from all
        order allow,deny
        AllowOverride All
    </Directory>
</VirtualHost>

また、URLパス(最初のエイリアス部分)は、大文字と小文字を区別しないファイルシステムでも大文字と小文字を区別することに注意してください。

また、C:/Wamp/vhosts/ptrl/praveen-kumar/blogディレクトリ。

参照

24
felipsmartins