Flash-объект не распознает строку запроса, если установлен через mod_rewrite - PullRequest
1 голос
/ 17 сентября 2010

Если я загружаю SWF со строкой запроса в конце, например:

object.swf?this=that

... тогда «this» правильно распознается как flashvar внутри объекта flash.

Но, если я установлю "this" через mod_rewrite, например:

RewriteRule ^object$ lib/object.swf?this=that [QSA,NC,L]

... тогда "this" не определено.

Я даже написал небольшой PHP-скрипт для вывода дампасодержимое $ _GET (временно изменило цель перезаписи), и я уверен, что правило перезаписи работает.

Любая помощь очень ценится.

Чтобы продемонстрировать странность проблемы, позвольте мне временно изменить цель перезаписи на «object.php», поэтому теперь правило гласит:

RewriteRule ^object$ lib/object.php?this=that [QSA,NC,L]

Я создал object.php в/lib/ каталог со следующей строкой:

<code><?php echo '<pre>'.print_r($_GET, true).'
';?>

Затем, когда я перехожу к /object, я получаю следующий вывод:

Array
(
    [this] => that
)

Это показывает, что правило перезаписи работает должным образом.

Тем не менее, когда я изменяю цель перезаписи обратно на SWF, «this» не распознается как flashvar.

(я определенно проверю журнал перезаписи, чтобы убедиться, но я некажется, у меня есть доступ к нему на сервере Media Temple, который я использую.)

Ответы [ 2 ]

2 голосов
/ 18 сентября 2010

Я считаю, что это работает именно так, как и должно.Когда вы переписываете URL, вы выполняете преобразование на сервере, и этот процесс полностью прозрачен для клиента.Хотя это не проблема для вашего PHP-скрипта, который выполняется на сервере, это проблематично для вашего Flash-контента, который выполняется на клиенте.

Я подозреваю, что причина добавления строки запроса работаетчто Flash Player может анализировать соответствующую информацию из запроса при загрузке объекта фильма.Однако, когда вы используете mod_rewrite, измененный запрос не доступен для проигрывателя, поэтому он не может извлечь необходимую вам информацию.

Если вы хотите, чтобы URL-адрес содержался без строки запроса,можно изучить путь запроса загруженного файла внутри SWF, так что вы можете просто перенаправить файл Flash без строки запроса на сервере, а затем внутри SWF проанализировать информацию, которую вы в настоящее время получаетес помощью mod_rewrite, чтобы определить, какой контент загружать внутри.Мне нужно освежить свой ActionScript, чтобы дать вам пример кода, но если вам интересно, я посмотрю, что я могу сделать.

0 голосов
/ 17 сентября 2010

Давайте разберем это, чтобы найти проблему.

Проверьте ваш журнал перезаписи RewriteLog "/usr/local/var/apache/logs/rewrite.log", чтобы увидеть, что делает правило перезаписи.

Посмотрите руководство по перезаписи URL: http://httpd.apache.org/docs/1.3/misc/rewriteguide.html, чтобы убедиться, что в вашем правиле ничего не пропущено.

Кажется, что ваше правило перезаписи что-то меняет.Я бы тестировал различные правила перезаписи как таковые, пока не получу ошибку:

Пример: Правило 1: www.mysite.com to www.mysite.com/flash Правило 2: www.mysite.com/flash to www.mysite.com / myswf.swf и т. д. *

Смысл в том, чтобы выяснить, будет ли он работать с перезаписью модов при некоторых обстоятельствах, а не в других или нет вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...