Подтвердить что ты не робот

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

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

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

Первичный виртуальный хост (локальный хост)

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.

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. Любые решения?

4b9b3361

Ответ 1

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

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

Ссылка