Прежде всего вам нужно направить все ваши URL через какую-то функцию переписывания URL.
Итак, вы больше не делаете:
<a href="some/path/">Foo</a>
Но вместо этого что-то вроде:
<a href="<%= url_for('some/path') %>">Foo</a>
У всех веб-фреймворков есть такая функция. В то время как они обычно делают там все виды магии (для работы с путями и представлениями контроллера MVC, а что нет), в конце функции (концептуально) они все добавляют к вашему URL "root" (например, "/this/is/where/the/app/is/"
) чтобы вы могли создавать в приложении URL-адреса, которые не зависят от жестко заданного базового пути.
RoR использует директиву конфигурации под названием "relative_url_root"
.
Symfony (php) использует директиву конфигурации, также называемую "relative_url_root"
.
CakePHP использует директиву конфигурации под названием "WEBROOT_DIR"
.
В тех случаях, когда эти платформы работают на Apache, это значение часто вычисляется динамически (если вы не установили его явно). На других веб-серверах переменные среды часто недоступны или являются неверными, поэтому это значение нельзя определить последовательно.