в конфигурации apache, как мне использовать модуль псевдонима для каталога в корне документа?

Задний план

Использование Ubuntu с apache2:

В моей конфигурации sites-enabled у меня есть команда Alias, например:

Alias "/someDir" "/webSiteDir"

Это прекрасно работает.

Таким образом, абсолютный путь к /someDir на самом деле является «виртуальным каталогом», который фактически существует по адресу /var/www/html/someDir. Принимая во внимание, что /webSiteDir фактически существует в корне файловой системы Ubuntu.

Вопрос 1

Как мне создать псевдоним из одного каталога в корне документа в другой каталог тоже в корне документа? В руководстве по Apache специально сказано, что Alias следует использовать для перенаправления в каталоги за пределами корня документа. Итак, что мне следует использовать, если и «виртуальный каталог», и фактический каталог находятся внутри корня документа?

Прямо сейчас у меня работает со следующей строкой:

Alias "/anotherDir" "/var/www/html/thisDir"

Это кажется довольно неуклюжим, когда корень документа явно определен всего несколькими строками как var/www/html в той же конфигурации.

Должен ли я использовать другую команду, отличную от Alias, когда оба каталога находятся в одном и том же корневом каталоге документа?

вопрос 2

Как конфигурация apache вообще правильно определяет абсолютный путь к разным записям?

Например, в приведенной выше строке: Псевдоним "/anotherDir" "/var/www/html/thisDir" /anotherDir рассматривается как "виртуальный каталог" под /var/www/html/, но вторая часть, /var/www/html/thisDir, рассматривается как абсолютный путь по отношению к файловая система Ubuntu.

Хорошо, может быть, это просто синтаксис команды Alias, в котором первая запись всегда относительная, а вторая запись всегда абсолютная.

А как насчет атрибута <Directory>?

У меня есть одна запись:
<Directory "/">
, которая, кажется, относится к корню документа /var/www/html/ — относительный путь.

И у меня также есть:
<Directory "/thisDir">
который, кажется, ссылается на /var/www/html/thisDir - другой относительный путь

В то время как у меня есть другой:
<Directory "/webSiteDir">
который, похоже, указывает на абсолютный путь в файловой системе /webSiteDir.

Итак, мой файл конфигурации просто перепутался, или apache каким-то образом знает, когда что-то является относительным путем к корню документа или абсолютным путем из корня системы?


person Daniel    schedule 20.09.2016    source источник


Ответы (1)


В каком-то смысле Alias ​​не очень заботится о вашем корневом каталоге документов. То есть просто определите псевдоним внутри вашего виртуального хоста, первый аргумент — это новый виртуальный путь, а второй — всегда путь к файловой системе, может быть или не быть внутри документа, псевдоним не заботится об этом и не различает его.

Итак, к вопросу 1.

Всегда используйте псевдоним для определения виртуальных путей, независимо от того, где находится файловая система, просто используйте его, когда вам это нужно.

К вопросу 2.

У вас есть БОЛЬШОЕ недоразумение, Каталог ВСЕГДА указывает полный путь в вашей ОС, то есть <Directory "/">is / в файловой системе вашей ОС, и то же самое с остальными примерами вашего «Каталога».

Если вы хотите повлиять на путь, созданный с помощью псевдонима, вы должны использовать «Расположение» или «Каталог» с полным путем, и этот путь действительно относится к корневому документу.

person ezra-s    schedule 20.09.2016
comment
Вопрос 1. Таким образом, нет ничего плохого в использовании псевдонима для определения отношения между двумя путями внутри корня документа, даже несмотря на то, что в документации Apache (ошибочно?) указано, что он предназначен для создания псевдонимов папок < i>за пределами корня документа? Вопрос 2: Спасибо. Это было мое непонимание тогда. - person Daniel; 20.09.2016
comment
Я не думаю, что это неправильно, но если вы считаете, что они должны это исправить, продолжайте и прокомментируйте на странице документа или сообщите об ошибке, я думаю, что они просто констатируют очевидное, Псевдоним позволяет вам использовать путь, которым вы никогда не станете. может, когда он находится за пределами documentroot, как правило, это не имеет особого смысла, потому что вы можете просто создать этот каталог в documentroot и покончить с этим. - person ezra-s; 21.09.2016
comment
зачем мне создавать каталог в корне документа, если он будет просто псевдонимом для другого каталога? Я не пытаюсь быть воинственным: я спрашиваю, лучший ли это способ добиться того же эффекта? - person Daniel; 22.09.2016
comment
@ Даниэль, да, не волнуйся, мы просто комментируем, а не ссоримся. Как я уже упоминал, обычно вы просто создаете каталог, если вам нужен псевдоним, даже если его внутренний путь к документу, во что бы то ни стало, используйте его. - person ezra-s; 22.09.2016