Как сказать серверу, что все абсолютные пути должны начинаться с текущей директории?
Есть сайт, для работы чпу все пути к скриптам, стилям и картинкам абсолютные.
Сейчас потребовалось перенести сайт на две директории глубже, соответственно все пути сломались.
(/site.com -> /a/b/site.com)
Возможно ли как-то починить, не изменяя путей ко всем файлам?
.htaccess:
RewriteEngine On
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?act=$1 [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?act=$1&opt=$2 [L]
опция DocumentRoot определяет где лежат файлы для веб доступа. Обычно эта опция находится в файле:
/etc/apache2/httpd.conf или /etc/apache2/apache.conf
если её там нет, то добавить в файл конфигурации строку DocumentRoot "C:/Sites/home/localhost/www"
или DocumentRoot "/var/www/your_domain/a/b"
после чего перезагрузить апач
возможно, это подойдёт для решения вашей проблемы
тогда создайте поддомен или возьмите ещё один домен, раз произошло такое разделение. И укажите для основного домена /var/www/your_domain , а для вашего сайта в настройках поддомена "/var/www/your_domain/a/b". Я себе плохо представляю абсолютный путь, который идёт по your_domain/a/b так же, как шёл раньше по your_domain, без переноса DocumentRoot, при том что your_domain тоже будет работать как ни в чём не бывало. Как же он различит, куда ему ходить
для того чтобы использовать .htaccess на нижнем уровне (в ~/a/b), нужно чтобы роут проходил через этот путь(при абсолютных ссылках этого не происходит). А чтобы использовать на верхнем уровне (в корневом каталоге), htaccess'у нужно знать про все ссылки, на которые ссылался ваш сайт прежде, чтобы перенаправить их на /a/b, но при этом не перенаправлять ничего лишнего. Не думаю, что проблема решаема htaccess'ом