Сейчас ситуация такова: есть домен example.com и страницы товаров, доступные каждый по своему адресу:
-
example.com/product-one
-
example.com/product-two
- etc
Все эти страницы обрабатываются одним Yii action (в htaccess прописан RewriteRule, который ведёт на index.php?r=sale/product&product_id=%SOME_ID%). У каждого товара есть связка с html-файлом, загруженным на сервер, у которого прописаны относительные пути и поэтому этот html файл грузится на странице товара в IFRAME. Так ресурсы не теряются при относительных путях. События в этом html обрабатываю через jQuery скриптами, прописанными на странице товара, присутствует валидация и ajax-запросы.
Теперь возникла задача прописать отдельный домен для каждого товара. Например:
-
product-one.com =>
example.com/product-one (или
example.com/index.php?r=sale/product&id=1)
-
product-two.com =>
example.com/product-two (или
example.com/index.php?r=sale/product&id=2)
- etc
Правило прописываю так:
RewriteCond %{HTTP_HOST} ^product-one.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) http://example.com/product-one [P]
Проблема в том, что IFRAME в таком случае уже не грузится из соображений безопасности браузера (т.е. я пытаюсь загрузить в iframe одного домена содержимое другого).
Если же я переписываю рендеринг связанного с товаром html напрямую через echo (указывая тег < base > чтобы не терять относительные пути), то появляется ошибка:
XMLHttpRequest cannot load http://example.com/index.php?r=debug%2Fdefault%2Ftoolbar&tag=57cc3a8c22a51. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://detox-plus-monster.local' is therefore not allowed access.
Есть идея попробовать передавать ещё и отдельный домен в качестве параметра в index.php Yii2 и динамически указывать baseUrl в настройках, но не знаю как это сделать. За это решение отдельный плюс!
Как можно этот вопрос решить?