Создайте каталог псевдонимов внутри виртуального хоста

Я проверилВот, Вот, Вот, Вот, а такжеВот прежде чем задать этот вопрос. Я думаю, мои навыки поиска слабые.

Я используюWampServer версия2.2e, У меня есть потребность, как, мне нужен виртуальный путь внутри виртуального хоста. Позвольте мне сказать два хозяина, которые у меня есть.

Основной виртуальный хост (Localhost)
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/ должен быть один и тот же каталог. Одна вещь, о которой я подумал, это перемещениеblog папка внутриapps папка, но это связано сGit и другие вещи есть, поэтому невозможно переместить папку.

Итак, я подумал о созданииalias к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

    # 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 стр.

Я правильно делаю? Если вам нужно посмотреть журнал доступа и журнал ошибок, они здесь:

# 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: Изменено объявление VirtualHosts в соответствии с инструкциямиfelipsmartins:
<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, Какие-либо решения?

Ответы на вопрос(1)

Решение Вопроса

Обратите внимание, если вы создаетекличка в каталог за пределами вашегоDocumentRootвам может понадобиться явно разрешить доступ к целевому каталогу:

<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-путь (первая часть Alias) чувствителен к регистру даже в нечувствительных к регистру файловых системах.

Кроме того, проверьте разрешения отC:/Wamp/vhosts/ptrl/praveen-kumar/blog каталог.

Ссылка

Модуль Apache mod_aliasВиртуальный хост Apache
 felipsmartins14 окт. 2012 г., 10:12
@PraveenKumar, так сработало? Извините, мой английский ужасен
 felipsmartins14 окт. 2012 г., 06:58
Для более подробной информации смотрите руководство Apache,ссылка
 Praveen Kumar Purushothaman14 окт. 2012 г., 09:04
Серьезно, в чем была проблема. Я делал то же самое раньше, но не работал! Как бы то ни было, ты волшебник !!! :П
 felipsmartins14 окт. 2012 г., 07:51
@PraveenKumar, см. Мой пост изменяет. У моего хозяина это сработало.
 Praveen Kumar Purushothaman14 окт. 2012 г., 07:06
@felipsmartines Пожалуйста, смотрите обновленный ответ. Я тоже перезапустил сервер Apache2. Не повезло.

Ваш ответ на вопрос