iframes не будут работать с поддоменами с подстановочными знаками и dnsmasq

У меня есть локальный блок разработки, в котором настроены apache2 и поддомены с подстановочными знаками, dnsmasq и локальный веб-сайт. Эта настройка удобна для тестирования с несколькими браузерами, поскольку веб-приложение на локальном сайте не позволяет нескольким браузерам входить в систему из одного и того же местоположения/домена. Эта система работает хорошо, за исключением тех случаев, когда я пытался тестировать iframe и использовать поддомены с подстановочными знаками в URL-адресе iframes src. После чего я получаю ошибку страница не найдена.

Как видно из URL-адреса, содержащегося в сообщении об ошибке, которое вы можете просмотреть внизу этой страницы, кажется, что может быть некоторый конфликт между файлами конфигурации apache для виртуальных хостов в игре и перенаправлением в jsgame, но я в растерянности как это исправить. Кто-нибудь может подсказать, как исправить эту проблему?

ОС — Debian 6, и так настроена моя система.

Апач

Внутри etc/apache2/сайты-доступны/игра

<VirtualHost *:80>
ServerName catchall.game
ServerAlias *.game
VirtualDocumentRoot /var/www/%1
</VirtualHost>
#
<VirtualHost *:80>
ServerName mplayer.game
ServerAlias *.game
DocumentRoot /var/www/game/public
</VirtualHost>

Веб-сайт

Внутри etc/apache2/sites_available/jsgame

Alias /jsgame/ usr/share/jsgame
RedirectMatch ^/jsgame/?$ /jsgame/example/index.html
ProxyRequests Off
<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>
ProxyPass /JSGAME_REST http://127.0.0.1:19384/JSGAME_REST retry=1
ProxyPass /AVATAR http://127.0.0.1:19384/AVATAR retry=1
ProxyPass /UPLOAD http://127.0.0.1:19384/UPLOAD retry=1

Dnsmasq

строка 62 в файле etc/dnsmasq.conf

# Add domains which you want to force to an IP address here.
# The example below send any host in doubleclick.net to a local
# webserver.
address=/.game/127.0.0.1

index.html

Доступ к веб-приложению осуществляется через:

master.game/jsgame/example/index.html?game_id=45

iframe

код iframe внутри /jsgame/example/index.html

<iframe id="player0" width="25%" height="25%" src="player0.game/jsgame/pts1.html" style="position:absolute;left:0px;top:0"></iframe>

Я получаю эту ошибку от iframe:

Запрошенный URL-адрес /jsgame/example/player0.game/pts1.html не найден на этом сервере.

Я ожидал, что URL будет таким:

player0.game/example/pts1.html отличается от показанного выше.


person spire    schedule 06.10.2014    source источник
comment
Что, если вместо этого использовать http://player0.game/example/pts1.html? Это не будет считаться относительным.   -  person Yoann    schedule 07.10.2014
comment
@ YoannM, в вашем решении, что на самом деле заставляет URL-адрес считаться относительным или нет?   -  person spire    schedule 08.10.2014
comment
По сути, это была догадка, но с http:// вы абсолютно уверены, что она абсолютна. Я не могу проверить вашу настройку на данный момент, поэтому я не могу эффективно помочь вам. Извиняюсь.   -  person Yoann    schedule 08.10.2014
comment
Вы были правы, я не знал, что http:// будет иметь значение. Когда я прочитал ваше решение, я подумал только о том, что вы хотели добавить каталог /example и не добавляли http://. Я попробовал еще раз сегодня, и это сработало. Я хотел отдать тебе должное. Если вы опубликуете ответ, я выберу его.   -  person spire    schedule 08.10.2014


Ответы (1)


Что, если вы используете http://player0.game/jsgame/pts1.html вместо player0.game/jsgame/pts1.html в качестве атрибута src вашего iframe?

<iframe 
   id="player0" 
   width="25%" 
   height="25%" 
   src="http://player0.game/jsgame/pts1.html" 
   style="position:absolute;left:0px;top:0">
</iframe>

Это не будет считаться относительным.

person Yoann    schedule 07.10.2014
comment
Большое спасибо. Вы спасли меня от горя! - person spire; 08.10.2014
comment
Совершенно никаких проблем. Я рад, что моя дикая догадка оказалась правильным ответом :) - person Yoann; 08.10.2014