#php #html #.htaccess #iframe
#php #HTML #.htaccess #iframe
Вопрос:
Как я могу правильно установить iframe src в качестве местоположения в $ _GET.
В настоящее время я пытаюсь это:
.htaccess
RewriteRule ^stream/(.*)$ index.php?p=streamamp;link=$1
stream.php /http://bbc.co.uk
<?php
echo '
<div class="container" style="height:1000px;">
<iframe src="'.$_GET['link'].'" frameborder="0" width="100%" height="100%"></iframe>
</div>
';
?>
Это переводит iframe в 127.0.0.1/stream/http://bbc.co.uk когда он должен просто перейти к bbc.co.uk
Комментарии:
1. Звучит как замечательный способ обмануть людей, заставив их думать, что мой сайт является частью вашего сайта…
2. Что, даже если ваш сайт будет четко виден в URL?
3. Это единственное правило перезаписи? Я не вижу ничего, что могло бы превратиться
stream.php
вstream
.4. Нет, это не так, я вырезал большую его часть, поскольку он большой, извините, я могу повторить $ _GET [‘link’] и получить доступ stream.php перейдя в /stream
5. по какой-то причине, когда я повторяю $ _GET [‘link’], он возвращает http:/bbc.co.uk вместо bbc.co.uk (одна косая черта после http: вместо двух)
Ответ №1:
Как я указал в своем комментарии, вам нужно переписать php-файлы для удаления .php
, чтобы опубликованное вами правило соответствовало, например:
RewriteRule (w ).php $1
RewriteRule ^stream/(.*)$ index.php?p=streamamp;link=$1
Это означает, что ваша ссылка будет переписана как so:
http://example.com/stream.php/http://bbc.co.uk
http://example.com/stream/http://bbc.co.uk
http://example.com/index.php?p=streamamp;link=http://bbc.co.uk
Затем ваш php выведет:
<div class="container" style="height:1000px;">
<iframe src="http://bbc.co.uk" frameborder="0" width="100%" height="100%"></iframe>
</div>
Который работает так, как ожидалось.
Комментарии:
1. Здесь та же проблема, она показывает только одну косую черту после http: вместо двух.
2. @user1626410
it only shows one forward slash after http: instead of two
Где? На каждом этапе перезаписи в исходном коде отображается 2 и 2.3. В iframe src это показывает <iframe src=»http:/bbc.co.uk » frameborder=»0″ height=»100%» width=»100%»></iframe>
4. @user1626410 Я не могу воспроизвести вашу проблему. Запустите код точно так, как я его поместил, и удалите все имеющиеся у вас RewriteRules, которых нет в моем сообщении.
Ответ №2:
Сам URL-адрес неверен, ie. это должно было быть в форме
stream.php?link=http://bbc.co.uk
Затем вы получите его в:
$_GET['link']
Другим способом было бы сохранить отображение вышеупомянутой переменной get с соответствующим URL:
ie.
var urlsMapping = {"bbc":"http://bbc.co.uk","toi":"http://timesofindia.indiatimes.com"}
Затем сделайте свой URL таким:
stream.php?link=bbc
Установить iframe src как
urlsMapping[<?=$_GET['link']?>]
Комментарии:
1. Смысл в том, чтобы url stream.php / otherurl был переписан в index.php?p=streamamp;link =otherurl
Ответ №3:
Просто попробуйте это
RewriteRule ^stream/(. )$ index.php?p=streamamp;link=$1 [L,QSA]
Я надеюсь, что это поможет вам.
Ответ №4:
Я исправил это с помощью preg_replace
Возможно, не лучший вариант, однако он сработал.
<?php
$link = preg_replace('~http:/~si', '', $_GET['link']);
echo '
<div class="container" style="height:1000px;">
<iframe src="http://'.$link.'" frameborder="0" width="100%" height="100%"></iframe>
</div>
';
?>