Обнаруживать и изменять внешние ссылки в PHP?
У меня есть бесплатный веб-сервер PHP, и я хотел бы предоставить перенаправление на страницу внешних ссылок, как это делает http://www.deviantart.com/. Есть ли способ сделать это только с помощью PHP? У меня нет доступа к серверу.
Редактировать: я имел в виду страницу с вопросом "Вы уверены, что хотите покинуть [ВЕБ-САЙТ МА]? NOPE; DUH - GO TO http://outside-example.com/ "
Edit2: я на самом деле имел в виду функцию, чтобы ловить внешние ссылки и заменять их /redirect/?url=PARSED_URL_ADDRESS
4 ответа
Вам необходимо определить, есть ли какая-либо ссылка, которая перенаправляет на внешний веб-сайт, а затем вам нужна страница, на которой будет отображаться что-то вроде "Сейчас ухожу с вашего сайта.com".
Если это так, то вам нужно проанализировать содержимое вашей страницы перед рендерингом и выяснить, есть ли какие-либо теги, и заменить ссылку на них некоторыми. gatway.php?url=outgoing-url
Где в gateway.php сравнить, если URL принадлежит вашему сайту или внешнему сайту, используя методы сравнения строк
Используйте этот код js в нижнем колонтитуле (я ожидаю, что есть некоторая распространенная страница нижнего колонтитула)
var urls = document.getElementsByTagName("a");
for (urlIndex in urls ) {
urls[urlIndex].href = "dummy.php?url="+urls[urlIndex].href; //replace dummy.php with urs
}
Вы имеете в виду, как header('Location: http://www.example.com/');
?
Предоставьте, например, функцию, которая создает <a>
теги. Или только один, который преобразует URL в ваш редиректор: redirect.php?url=http://...
, Затем перенаправитель выдает HTTP-заголовок с именем "refresh", установленный на новый адрес. Украсьте его, чтобы пользователь знал, что его перенаправляют, вуаля.
Узнайте сами, как:)
Лучший способ сделать это - использовать заголовок местоположения, но вам также нужно установить код ответа 301, это также говорит поисковым системам, просматривающим ссылку, что контент по этому URL находится в другом месте, и это лучший способ установить код ответа для перенаправлений в целом.
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.new-url.com" );