WedX - журнал о программировании и компьютерных науках

Есть ли способ быстро/легко создать символическую ссылку на существующую папку веб-сайта?

Описание:

Я часто сталкиваюсь с этой проблемой, когда у меня есть веб-сайт, расположенный в /var/www/, который становится слишком большим, и я решаю переместить практически весь его в /var/www/main_files. Простое размещение символической ссылки /var/www/index.html, указывающей на /var/www/main_files/index.html, не работает. Я считаю, что причина, по которой это не работает, заключается в том, что файл index.html все еще «выполняется» в каталоге символической ссылки (/var/www). Следовательно, любые файлы, которые необходимо включить или извлечь, больше не будут иметь правильных путей.

Можно изменить каталог VHost на /var/www/main_files, но это слишком постоянно. Я все еще могу захотеть иметь несколько файлов в /var/www. Я также мог бы просмотреть и вручную изменить любые пути к файлам в реальных файлах html/php/js, но это не только слишком долго, но и очень медленно.

Вопрос:

Есть ли способ, кроме использования mod_rewrite (который, опять же, слишком постоянен), чтобы указать Apache следовать символическим ссылкам (предположим, что все символические ссылки находятся внутри docroot) и, когда пользователь переходит на www.example.com/ index.html, загружать веб-страницу, как если бы пользователь перешел на www.example.com/main_files/index.html? Если нет, то какие еще варианты следует рассмотреть?

Мотивация:

Я чаще всего сталкиваюсь с этой проблемой, когда хочу отладить сайт и быстро скачиваю бесплатный шаблон (т.е. загрузите этот файл). У большинства этих шаблонов все файлы находятся в верхней папке, что делает очень грязным сброс всего в /var/www, особенно если шаблонов несколько. Я хочу создать подпапку для шаблона, но при этом иметь возможность загружать его с www.example.com/index.html, а не напрямую с www.example.com/template1. /index.html

10.04.2012

Ответы:


1

Инструкция следовать символическим ссылкам не является частью mod_rewrite, но находится в ядре Apache.

Чтобы включить эту функцию, вы должны добавить FollowSymLinks в директиву Options:

  <Directory /usr/local/httpd/htdocs>
    Options Indexes FollowSymLinks
  </Directory>

См. https://httpd.apache.org/docs/2.2/mod/core.html директива.

10.04.2012
  • Но будет ли apache следовать символическим ссылкам? например, что, если я установлю символическую ссылку, указывающую на /home/foo/bar/index.html? (спасибо кстати) 10.04.2012
  • Вы уверены, что это делает то, что я хочу? Я спрашиваю только потому, что у меня все время было следующее Options -Indexes +FollowSymLinks 10.04.2012
  • Если вам просто нужно перенаправить файл в корне документа, вы можете использовать mod_rewrite; если вы хотите использовать символические ссылки, вам нужно включить их с помощью параметров. Вероятно, вам не нужны символические ссылки, а просто правило перезаписи, см. stackoverflow.com/questions/990392/ 11.04.2012
  • Либо вы не понимаете, что мне нужно, либо я неправильно интерпретирую ваш совет. Я хочу иметь возможность взять шаблон веб-сайта, сохранить его в /var/www/a/b/c/d/.../z/, затем установить символ в /var/www/index.html на /var/www/a/b/c/d/.../z/index.html и заставить веб-сайт работать без неработающих ссылок или мне нужно будет изменить все удаленные пути на глобальные пути. 11.04.2012
  • Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]