Продолжаю делиться с вами маленькими, но очень полезными скриптами для сайта, которыре помогают улучшить отношение поисковых систем к вашему сайту. На этот раз речь пойдет об грамотной перелинковке страниц.
Для начала создадим базу адресов страниц и возможные анкоры к какждому из них. В качестве базы будем использовать файл формата *.txt . Структура файла будет такой:
Адрес_страницы_1;анкор_1,анкор_2,анкор_3,...,анкор_n адрес_страницы_2;анкор_1,анкор_2,анкор_3,...,анкор_n адрес_страницы_3;анкор_1,анкор_2,анкор_3,...,анкор_n ... адрес_страницы_n;анкор_1,анкор_2,анкор_3,...,анкор_n
Как видите, дальнейшее использование скрипта возможно при любом количестве адресов страниц и анкоров к ним. Адрес страницы пишется без http://www.site.ru/, т.е. сразу от корня без первого слэша. Адрес раздляется от анкоров через точка с запятой, а анкоры между собой просто запятой. Можно сделать и написание полного адреса, просто лично мне так удобнее, а изменить под себя заполнение и выдачу результата вы можете и сами, думаю, вы интуитивно и сами разберетесь.
И так, база ссылок и анкоров к ним создана, далее я приведу пример кода PHP для непосредственного вывода ссылок для перелинковки на сайте:
Вставляем этот код в любое место на сайте, который выводит 5 случайных ссылок из базы и случайным анкором. Анкоры лучше разбавлять, а не писать только 1 к ссылке. При грамотной перелинковке на сайте вы незамедлительно увидите прирост трафика и улучшение других показателей сайта.
Жду ваши вопросы в комментариях к данному посту.
Дата публикации: 03 марта, 2014-
Отзывы и комментарии:
Дмитрий
:
Спасибо за скрипт, буду внедрять.
Из исходного кода с сайта невозможно скопировать, копируется только маленькими отрывками, было бы удобнее целиком.
Кирилл
:
Спасибо за замечание с копированием, только сейчас это увидел, постараюсь в ближайшее время исправить.
Алексей Павлов
:
Ошибка в строчке
$tex = explode(":",$sendlist[$count]
Нужна точка с запятой, а не двоеточие.
Я немного изменил код, сделал его понятнее:
$anchor";
}
?>
Matrk
:
Статья полностью бесполезна, т.к. на блоге стоит защита от копирования текста.
Кирилл
:
Небольшой косяк есть в js, это да, нет времени поправить, но наверное кое-кто другой бесполезный, раз ума не хватает в таком случае исходный код страницы глянуть и взять от туда
Matrk
:
Т.е. я должен еще по исходному коду лазить и чистить его от всякого мусора? Вы забавный.
Кирилл
:
Получается я кому-то что-то должен? Я у вас что, деньги взял, стараешься тут, бесплатные советы даешь:))) Бесплатный сыр только в мышеловке, с возрастом поймете.
Кирилл
:
Убрал косяк, пользуйтесь на здоровье.
Андрей Копаев
:
1 - наверное лучше это делать с использованием базы данных mysql работать будет быстрее, добавлять проще
2 - не пойму какой смысл каждый раз генерить список ссылок? как это влияет на рост трафика? можно ли подгружать аяксом, т.е. это для людей или для ботов?
www.сайт
:
Для продвижения, хотя, лично я не сторонник подобных манипуляций с ПС.
СКАЧАТЬ ИСХОДНИКИ
Мне нравится решать проблемы с помощью маленьких и компактных скриптов. Чем меньше кода нужно написать, тем лучше. Недавно у меня в очередной раз появился шанс это сделать.
Эта проблема может быть решена с помощью скрипта для сокращения URL-адресов. Уже довольно давно существуют сервисы, предоставляющие такие возможности, но они не без недостатков. Вот некоторые из них:
- Зависимость от внешнего сервиса – когда он не работает, ссылки тоже оказываются недоступными. Еще хуже, если сервис закрывается – сами понимаете к чему это приведет;
- Вся статистика отслеживается сторонними сервисами;
- Обычно, не разрешается изменять вид укороченных ссылок;
- Некоторые сервисы позволяют выбрать свои псевдонимы, но большинство назначает их автоматически.
Итак, задача состоит в написании собственного PHP-скрипта, который был позволил решать задачу, описанную выше!
Идея
Если скрипт создается исключительно для собственного пользования, то можно опустить создание таких вещей, как регистрация пользователя и административная панель. Ниже перечислены возможности, которыми должен обладать наш будущий скрипт:
- Короткие ссылки будут иметь вид http://example.com/l/short-link . Посещение данного URL-адреса будет переадресовываться на реальный адрес;
- Весь скрипт будет располагаться в единственном файле – index.php, без внешних зависимостей;
- Панель администратора с инструментами добавления и редактирования ссылок отсутствует. Все будет управляться с помощью простого текстового файла, расположенного на сервере, который очень легко отредактировать;
- Идентификаторы не будут автоматически присваиваться ссылкам – вы сами будете вводить псевдоним.
Эти пункты упростят наш будущий скрипт. Чтобы сделать все еще более понятным, я решил хранить ссылки в INI-файле, потому что его легко отредактировать и PHP имеет их встроенную поддержку через функцию parse_ini_file (это убережет нас от необходимости читать содержимое файла и парсить его вручную, к тому же эта функция работает очень быстро).
INI-файл
INI-файл выглядит так:
links.ini
Реализация
Наш PHP-скрипт гениально прост:
index.php
$links = parse_ini_file("links.ini"); if(isset($_GET["l"]) && array_key_exists($_GET["l"], $links)){ header("Location: " . $links[$_GET["l"]]); } else{ header("HTTP/1.0 404 Not Found"); echo "Unknown link."; }
Скрипт ожидает получения псевдонима в массиве $_GET[‘l’] , который выглядит например так: http://example.com/index.php?l=google .
Конечно это не сокращение, но мы можем улучшить это с помощью файла .htaccess (используется для запуска веб-сервера Apache).
Htaccess
RewriteEngine On RewriteCond $1 !^(index.php) RewriteRule ^(.*)$ index.php?l=$1 [L]
Этот файл должен находиться в той же директории, что и index.php и links.ini . Его назначение состоит в том, чтобы перенаправлять каждый запрос, который идет НЕ к файлу index.php , на адрес вида index.php?l=xxx . Это защитит от циклических ссылок и сделает файл links.ini недоступным из браузера.
Для достижения наилучших результатов, поместите три этих файла в папку с коротким именем, к примеру «l », в корневую папку сайта, и получите короткий вид ссылок в форме http://example.com/l/google .
Пример с сайтом google.com не слишком нагляден, так как укороченная ссылка получается длиннее оригинала, однако важно было показать именно суть работы механизма, что, надеюсь, и было достигнуто.
Заключение
Еще одно улучшение, которое можно сделать, это создать простейший административный интерфейс, чтобы можно было менять содержимое INI-файла.
Конечно, в данном скрипте можно еще много чего реализовать. Надеюсь, что мое творение было для вас полезным!
Перевод статьи «Quick Tip — Create a Simple URL Shortener With 10 Lines of PHP » был подготовлен дружной командой проекта .
Хорошо Плохо
Описание
HTML тег определяет отношение между текущим html-документом и внешним ресурсом, на который он ссылается. Он является пустым элементом (не имеет содержимого и закрывающего тега) и всегда должен располагаться внутри элемента
. Чаще всего тег используется для подключения внешних таблиц стилей:
Первый атрибут href определяет адрес документа, который может быть как абсолютным так и относительным. Второй атрибут rel указывает связь между HTML файлом и тем, на что вы ссылаетесь, в данном случае мы ссылаемся на таблицу стилей, поэтому используется значение stylesheet. Атрибут type сообщает браузеру MIME тип документа, для таблиц стилей значением всегда будет "text/css" .
Примечание: по стандарту HTML5, при подключении к документу внешнего файла CSS, атрибут type указывать не требуется:
Предварительная загрузка страниц
Обычно, когда вы кликаете по ссылке на другую страницу приходится ждать несколько секунд пока она загрузится. Однако, вы можете настроить вашу веб-страницу таким образом, чтобы определённые страницы загружались заранее в кэш браузера в то время пока вы находитесь на текущей странице. Это означает, что когда вы кликнете по ссылке для перехода на другую веб-страницу, то она откроется сразу и не надо будет ждать, пока она загрузится. Это называется "предварительное получение страницы". Чтобы сделать это, используется тег с атрибутом rel="prefetch" , а также указывается целевая страница, которая будет заранее загружена на компьютер.
Такая запись позволит заранее закешировать страницу tag_p.php на компьютере, пока вы читаете содержимое текущей страницы. Вы можете использовать тег для предварительной загрузки любого количества страниц вашего собственного сайта или любых других из интернета.
Примечание: вместо адреса на HTML-документ можно указать путь к файлу другого типа (картинку, видео и тд.).
Атрибуты
href: Указывает месторасположение (URL) внешнего файла (путь к файлу может быть указан с помощью абсолютного или относительного адреса). hreflang: Указывает двухбуквенный код языка, определяющий язык документа, на который ведет ссылка. Атрибут hreflang используется только совместно с атрибутом href . media: Определяет под какие устройства оптимизирован файл. Главным образом он используется с файлами таблиц стилей, для определения различных стилей под разные типы носителей. Атрибут media может принимать сразу несколько значений, разделяемых между собой пробелами. rel: Указывает связь между текущим документом и документом, на который ведет ссылка.- alternate - ссылка на альтернативную версию документа (то есть страницы для печати, перевод или зеркало).
- author - определяет ссылку страницу об авторе документа или на страницу с контактными данными автора.
- canonical
- позволяет пометить страницы с дублирующимся контентом, это значит что все страницы, имеющие одинаковое содержимое должны содержать тег с атрибутом rel="canonical" .
Атрибут href , в этом случае, должен содержать ссылку на страницу с идентичным содержимым, которую поисковые системы должны считать основной:
- first - указывает ссылку, ведущую на первый документ из последовательности документов.
- help - ссылка на документ со справкой.
- icon - определяет путь к иконке, которая будет использована для текущего документа.
- last - указывает ссылку, ведущую на последний документ в последовательности документов.
- licence - ссылка на сведения об авторских правах для документа.
- next - указывает, что этот документ является частью серии, и что ссылка будет вести на следующий документ в этой серии.
- prefetch - указывает, что следует заранее кэшировать файл, на который ведет ссылка.
- prev - указывает, что этот документ является частью серии, и что ссылка ведет на предыдущий документ в этой серии.
- search - ссылка на поиск для документа.
- stylesheet - определяет внешний файл, который будет использоваться в качестве таблицы стилей для данного документа.
- ширинаXвысота - определяет список размеров, разделенных пробелами, каждый размер должен быть в формате - ширинаxвысота (размеры иконки определяются в пикселях), пример:
- any - иконка может масштабироваться до любого размера.
Тег так же поддерживает