Назад | Перейти на главную страницу

IIS7 два каталога, один сайт

У меня есть один сайт www.mysite.com, где я получил прикладную программу, и теперь мы собираемся разместить здесь и наш веб-сайт.

Проблема в том, что приложение неприкосновенно, и мы хотим, чтобы его не допустила команда веб-сайта.

Это образ того, что я хотел бы сделать:

Данные сервера,
Применение:
C: \ myapplication \ app.php
C: \ myapplication \ appfolder \ index.html

Интернет:
C: \ myweb \ index.html
C: \ myweb \ webfolder \ index.html


Доступ из Интернета,
Применение:
www.mysite.com \ app.php
www.mysite.com \ appfolder \ index.html

Интернет:
www.mysite.com \ index.html
www.mysite.com \ webfolder \ index.html


Я знаю, что есть виртуальные папки, но я не хочу добавлять папки одну за другой ...
В корне веб-сайта есть файлы для приложения, как и для веб-сайта.
Я бы создал 2 разных FTP-аккаунта, одну для C: \ myapplication и один для C: \ myweb

Можно ли это сделать?

Я использую Windows 2008 R2 с IIS и PHP

Спасибо.

Вот идея (хотя и не проверенная):

1) Создайте виртуальную папку для своего php-приложения (я знаю, вы сказали, что не хотите этого)

2) Использование модуля URL-Rewrite для перезаписи URL-адресов (например, /app.php -> /virtual/app.php).

Ваши посетители должны видеть обычный URL, тогда как за ним он будет расположен по-другому.

Вы можете заменить виртуальную папку символической ссылкой или соединением каталогов, если хотите, но у нее есть некоторые недостатки, так как такая папка с символической ссылкой будет физической частью веб-сайта (по крайней мере, на сервере) и может быть перезаписана по ошибке (если вы не настроите надлежащие права доступа) .

Возможная проблема с этим подходом заключается в том, что вы должны полагаться на то, насколько хорошо написано ваше приложение php - оно может неправильно вычислять пути для include / require и других операций, связанных с файлами (в одном месте они могут использовать РЕАЛЬНОЕ расположение файла (например, C : \ myapplication \ app.php), в другом месте они могут ссылаться на путь, видимый веб-сайтом (SERVER_ROOT), например C: \ myweb \ virtual \ app.php) - вам действительно нужно проверить это.