У меня есть два независимых сайта на моем сервере. Один из них находится в подпапке другого. Оба веб-сайта доступны в двух разных доменах. После структуры папок на моем сервере:.htaccess перенаправить корень в папку
/www <- one.com
/index.html
/assets
...
/folder <- two.com
/.htaccess
/index.html
/assets
...
Поэтому, если я хочу, чтобы получить доступ к вебу-сайту two
я могу сделать это с помощью следующих адресов:
one.com/folder
two.com
Моей проблема: Используя абсолютные пути для включения файлов (css/js/img) на веб-сайте two
, мне нужно адаптировать мой корень, в зависимости от того, какой URL-адрес пользователь получает на сайте two
. После примера для иллюстрации:
HTML-файл /www/folder/index.html
содержит изображение:
<img src="/assets/img.jpg" />
Если доступ пользователей этот HTML-файл через домен one.com/folder/index.html
путь исходного изображения переводится в one.com/assets/img.jpg
, где она получила Не находите изображения. Правильно было бы one.com/folder/assets/img.jpg
(одно уведомление folder
на пути). Очевидно, что если пользователь вызывает two.com/index.html
, проблема не существует.
Поэтому я думал, что я хотел бы изменить корень (базовый каталог) веб-сайта two
через .htaccess
мод переписан в зависимости от URL вызывается. После простой псевдо код, который я хотел бы реализовать:
if url == one.com/folder*
root = /folder/
else
root =/
И после того, что я до сих пор для моего .htaccess
файла:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?one\.com
RewriteRule ^/(.*)$ /folder/$1 [R]
К сожалению, это, кажется, как будто я что-то пропустил. Пока это не работает. Любые советы очень ценятся!
Отличная идея, спасибо очень много. Единственное, что я забыл упомянуть на веб-сайте, имеет похожую структуру, то есть он также содержит папку «assets» (обновленный вопрос). Поэтому это решение не работает. Простите, я сосредоточился на подпапке ('folder') и не думал, что что-то вне ее может быть действительно важным. – lorenzli
Хмм, что полностью меняет проблему. Если в корне есть '/ assets /', то почему 'one.com/assets/img.jpg' вызывает 404 не найден? – anubhava
Потому что я упростил пример: например, сайт 'two' содержит баннер ('/assets/banner.jpg'), но на сайте 'one' нет. Кроме того, веб-сайт 'two' содержит js-скрипты ('/assets/js/script1.js' ...), опять же сайт 'one' этого не делает. Так что, конечно, у меня есть возможность выбрать два разных имени для двух папок 'assets', но разве эта проблема не разрешима с помощью« RewriteCond », а затем с использованием вашего предлагаемого« RewriteRule »? Спасибо вам за помощь! – lorenzli