Обнаруживать и изменять внешние ссылки в 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" ); 
Другие вопросы по тегам