- Дальнейшее чтение на SmashingMag:
- Что такое перезапись URL?
- Как помогает перезапись URL?
- Как переписать URL
- Самый простой случай
- Без окончаний файлов
- Пример Википедии
- Реализация примера B & Q
- Условное переписывание
- Переадресация доменов
- Наличие файлов и WordPress
- Переписывание строк запроса
- Примеры перезаписи URL на сайтах покупок
- Особенности URL-адреса Amazon
- Другие примеры покупок
- Дружественные URL
- Изменение имен страниц
- Контрольный список и устранение неисправностей
- 1. Проверьте, что это поддерживается
- 2. Запланируйте свой подход
- 3. Создайте свои правила перезаписи
- 4. Проверьте свои страницы
- 5. Измените свои URL
- 6. Автоматически перенаправить ваши старые URL
- Заключение
Многие веб-компании проводят часы и часы, мучаясь над лучшими доменными именами для своих клиентов . Они пытаются найти доменное имя, которое уместно и уместно, звучит профессионально, но отличается от других, легко пишется, запоминается и читается по телефону, хорошо смотрится на визитных карточках и доступно как дот-ком.
Или же они тратят тысячи долларов, чтобы купить тот, который им действительно нужен, который, как оказалось, был зарегистрирован дальновидным и труднодоступным скваттером в 1998 году.
Дальнейшее чтение на SmashingMag:
Они проходят через все эти проблемы с доменным именем, но пренебрегают остальной частью URL, элементом после доменного имени. Он также должен быть актуальным, уместным, профессиональным, запоминающимся, простым для написания и читабельным. И по тем же причинам: привлекать клиентов и улучшать поисковый рейтинг.
К счастью, существует метод, называемый перезаписью URL, который может превратить неприглядные URL в хорошие - с гораздо меньшими мучениями и затратами, чем при выборе хорошего доменного имени. Это позволяет вам заполнять ваши URL понятными и удобочитаемыми ключевыми словами, не влияя на основную структуру ваших страниц.
Эта статья охватывает следующее:
- Что такое перезапись URL?
- Как переписывание URL может помочь вашему поисковому рейтингу?
- Примеры перезаписи URL, включая регулярные выражения, флаги и условные выражения;
- Перезапись URL в дикой природе, например, на Википедии, WordPress и торговых сайтах;
- Создание дружественных URL;
- Изменение имен страниц и URL-адресов;
- Контрольный список и устранение неисправностей.
Что такое перезапись URL?
Если бы вы писали письмо в свой банк, вы, вероятно, открыли бы свой текстовый процессор и создали бы файл с именем что-то вроде lettertobank.doc. Файл может находиться в вашем каталоге документов с полным путем, например C: WindowsusersjulieDocumentslettertobank.doc. Один путь к файлу = один документ.
Точно так же, если вы создавали банковский сайт, вы можете создать страницу с именем page1.html, загрузить ее, а затем указать свой браузер. Один URL = один ресурс. В этом случае ресурс представляет собой физическую веб-страницу, но это может быть страница или продукт, взятый из CMS.
Перезапись URL меняет все это. Это позволяет полностью отделить URL от ресурса. При переписывании URL-адреса вы могли бы перевести пользователя на… / page1.html или… / about-us / или на… / about-this-website-and-me / или на… / youll-never-find-out- о-я-хахаха-Xy2834 /. Или ко всем этим. Это немного похоже на ярлыки или символические ссылки на вашем жестком диске. Один URL = один способ найти ресурс.
При переписывании URL-адреса URL-адрес и ресурс, к которому он ведет, могут быть полностью независимы друг от друга. На практике они обычно не являются полностью независимыми: URL-адрес обычно содержит некоторый код или номер или имя, которое позволяет CMS искать ресурс. Но теоретически, это то, что обеспечивает перезапись URL: полное разделение.
Как помогает перезапись URL?
Можете ли вы угадать, что продает эта веб-страница?
B & Q взяла на себя все хлопоты и расходы, связанные с приобретением diy.com и реализацией сайта электронной коммерции, контролируемого акциями, но оставила свои URL непонятными. Если вы догадались о «коричневом желобе», возможно, вы захотите сыграть в лотерею.
Даже если вы будете искать в Google UK этот «коричневый водосточный желоб», страница B & Q занимает лишь седьмое место в результатах органического поиска, уступая гораздо меньшим компаниям, таким как поставщик зданий с одним магазином в Стирлингшире. B & Q имеет более 300 филиалов и поэтому, вероятно, намного больше по бюджету, размеру и охвату, так почему же он не так хорош для этого поискового запроса? Возможно, потому что другие результаты поиска имеют такие URL, как Http: //www.prof...co.uk/products/ бурый минифлот-желоб -148 /; то есть, сам URL содержит слова в поисковом запросе.
Почти все эти результаты в Google содержат поисковый запрос в своих URL (выделены зеленым цветом). Тот, что внизу, нет.
Глядя на URL-адрес B & Q, вы (вероятно, правильно) предположили бы, что файл с именем nav.jsp в каталоге / diy / jsp / bq / используется для отображения продуктов, когда в их случае указан их идентификационный номер, 11577676. Это ресурс, тесно связанный с этим URL.
Итак, как B & Q может превратить это в нечто более узнаваемое, например, без реструктуризации всего своего сайта? Ответ - переписывание URL.
Другой способ взглянуть на переписывание URL-адресов - это тонкий слой, который располагается поверх веб-сайта, переводя удобные для человека и поисковых систем URL-адреса в реальные URL-адреса. Сделать это легко, потому что для этого не требуются какие-либо изменения в базовой структуре сайта - не нужно перемещать файлы или переименовывать объекты.
Перезапись URL в основном говорит веб-серверу, что / products / miniflow-gutter-brown / 11577676 должен показывать веб-страницу по адресу: /diy/jsp/bq/nav.jsp?action=detail&fh_secondid=11577676, при этом клиент или поисковая система не будут знать о Это.
Разумеется, многие факторы (или «сигналы») определяют рейтинг поиска по определенному термину, более 200 из них, по данным Google. Но дружественные и читаемые URL-адреса последовательно оценивается как один из самых важных из этих факторов. Они также помогают людям быстро понять, о чем страница.
В следующем разделе описывается, как это делается.
Как переписать URL
Можно ли реализовать перезапись URL на веб-сайте, зависит от веб-сервера. Apache обычно поставляется с уже установленным модулем перезаписи URL, mod_rewrite. Настройка очень распространена и является основой для всех примеров в этой статье. ISAPI переписать является аналогичным модулем для Windows IIS, но требует оплаты (около 100 долларов США) и установки.
Самый простой случай
Простейшим случаем перезаписи URL-адреса является переименование одной статической веб-страницы, и это гораздо проще, чем в приведенном выше примере B & Q. Чтобы использовать функцию перезаписи URL в Apache, вам необходимо создать или отредактировать файл .htaccess в корне документа вашего веб-сайта (или, реже, в подкаталоге).
Например, если у вас есть веб-страница о лошадях с именем Xu8JuefAtua.htm , вы можете добавить эти строки в .htaccess :
RewriteEngine On RewriteRule horses.htm Xu8JuefAtua.htm
Теперь, если вы зайдете, вам действительно будет показана веб-страница Xu8JuefAtua.htm. Кроме того, ваш браузер останется на сайте horse.htm, поэтому посетители и поисковые системы никогда не узнают, что вы изначально дали странице такое загадочное имя.
При переписывании URL-адреса вам нужно только сопоставить путь URL-адреса, не включая имя домена или первую косую черту. Вышеупомянутое правило, по сути, говорит Apache, что, если путь содержит horses.htm, тогда показывайте веб-страницу Xu8JuefAtua.htm. Это немного проблематично, потому что вы также можете посетить действительно быстрые horse.htm l , и это все равно будет работать. Итак, что нам действительно нужно, это:
RewriteEngine On RewriteRule ^ horses.htm $ Xu8JuefAtua.htm
^ Horses.htm $ - это не просто строка поиска, а регулярное выражение , в котором специальные символы - такие как ^. + *? ^ () [] {} и $ - имеют дополнительное значение. ^ Соответствует началу пути URL, а $ соответствует концу. Это говорит о том, что путь должен начинаться и заканчиваться horse.htm. Таким образом, будет работать только horse.htm, а не fasthorses.htm или horses.htm l . Это важно для поисковых систем, таких как Google, которые могут оштрафовать то, что считает дублированный контент - идентичные страницы, которые могут быть достигнуты через несколько URL-адресов.
Без окончаний файлов
Вы можете сделать это еще лучше, отключив окончание файла, чтобы вы могли посетить либо:
RewriteEngine On RewriteRule ^ horses /? $ Xu8JuefAtua.html [NC]
? указывает, что предыдущий символ не является обязательным. Таким образом, в этом случае URL будет работать с косой чертой или без нее в конце. Они не будут считаться дублирующими URL-адресами поисковой системой, но помогут предотвратить путаницу, если люди (или контролеры ссылок) случайно добавят косую черту. Содержимое в скобках в конце правила дает Apache дополнительные указания. [NC] - это флаг, который означает, что правило нечувствительно к регистру, поэтому также будет работать.
Пример Википедии
Теперь мы можем посмотреть на реальный пример. Википедия использует перезапись URL, передавая заголовок страницы в файл PHP. Например…
http://en.wikipedia.org/wiki/Barack_obama
… Переписан на:
http://en.wikipedia.org/w/index.php?title=Barack_obamaЭто вполне может быть реализовано с помощью файла .htaccess , например так:
RewriteEngine On # Найдите слово «wiki», за которым следует косая черта, а затем заголовок статьи. RewriteRule ^ wiki /(.+)$ w / index.php? Title = $ 1 [L]
В предыдущем правиле было /?, Что означало ноль или одну косую черту. Если бы он сказал / +, это означало бы один или несколько слэшей, так что даже сработало бы. В этом правиле точка (.) Соответствует любому символу , поэтому. + Соответствует одному или нескольким символам, то есть, по существу, чему угодно. И скобки - () - попросите Apache вспомнить, что такое +. Таким образом, приведенное выше правило предписывает Apache искать wiki /, за которым следует один или несколько символов, и помнить, что это такое. Это запоминается, а затем переписывается как 1 доллар. Итак, когда переписывание закончено, wiki / Barack_obama становится w / index.php? Title = Barack_obama
Таким образом, вызывается страница w / index.php, передавая Barack_obama в качестве параметра. W / index.php, вероятно, является страницей PHP, которая выполняет поиск в базе данных - например, SELECT * FROM article WHERE title = 'Barack obama' - и затем выводит HTML.
Вы также можете просматривать записи в Википедии напрямую, без перезаписи URL.
В приведенном выше примере также представлены комментарии. Все, что после # игнорируется Apache, поэтому неплохо объяснить ваши правила переписывания, чтобы будущие поколения могли их понять. Флаг [L] означает, что если это правило соответствует, Apache может остановиться. В противном случае Apache продолжит применять последующие правила, что является мощной функцией, но не обязательной для всех, кроме самых сложных наборов правил.
Реализация примера B & Q
Рекомендация для B & Q выше может быть реализована с помощью файла .htaccess , например так:
RewriteEngine On # Искать слово «продукты», за которым следуют косая черта, название продукта, косая черта, номер идентификатора. RewriteRule ^ products /.*/ ([0-9] +) $ diy / jsp / bq / nav.jsp? Action = detail & fh_secondid = $ 1 [NC, L]
Здесь. * Соответствует нулю или более любого символа , поэтому ничего или ничего. И [0-9] соответствует одной числовой цифре, поэтому [0-9] + соответствует одному или нескольким числам .
Следующий раздел охватывает пару более сложных условных примеров. Вы также можете прочитать Руководство по переписыванию Apache для гораздо большей информации обо всем, что может предложить перезапись URL.
Условное переписывание
Перезапись URL также может включать условия и использовать переменные среды. Эти две функции упрощают перенаправление запросов с одного псевдонима домена на другой. Это особенно полезно, если веб-сайт меняет свой домен, например, с mywebsite.co.uk на mywebsite.com.
Переадресация доменов
Большинство регистраторов доменов разрешают переадресацию домена, которая перенаправляет все запросы из одного домена в другой домен, но может отправлять запросы на www.mywebsite.co.uk/horses на домашнюю страницу www.mywebsite.com, а не на www.mywebsite .com / лошади. Вы можете достичь этого с помощью перезаписи URL:
RewriteEngine On RewriteCond% {HTTP_HOST}! ^ Www.mywebsite.com $ [NC] RewriteRule (. *) Http://www.mywebsite.com/$1 [L, R = 301]
Вторая строка в этом примере - это RewriteCond, а не RewriteRule. Он используется для сравнения переменной среды Apache слева (например, имени хоста в данном случае) с регулярным выражением справа. Только если это условие истинно, будет учитываться правило на следующей строке.
В этом случае% {HTTP_HOST} представляет www.mywebsite.co.uk, хост (то есть домен), который браузер пытается посетить. ! означает «нет». Это говорит Apache, что если хост не начинается и не заканчивается на www.mywebsite.com, то запомните и перепишите ноль или более любого символа на www.mywebsite.com/$1. Это преобразует www.mywebsite.co.uk/anything-at-all в www.mywebsite.com/anything-at-all. И это будет работать для всех других псевдонимов, таких как www.mywebsite.biz/anything-at-all и mywebsite.com/anything-at-all.
Флаг [R = 301] очень важен. Он говорит Apache сделать 301 (то есть постоянное) перенаправление. Apache отправит новый URL-адрес обратно в браузер или поисковик, и браузер или поисковик должны будут запросить его снова. В отличие от всех приведенных выше примеров, новый URL теперь будет отображаться в строке адреса браузера. И поисковые системы примут к сведению новый URL и обновят свои базы данных. [R] само по себе совпадает с [R = 302] и означает временное перенаправление.
Наличие файлов и WordPress
Smashing Magazine работает на популярном программном обеспечении для блогов WordPress. WordPress позволяет автору выбирать собственный URL-адрес, который называется «слаг». Затем автоматически добавляется дата, например https://www.smashingmagazine.com/2011/09/05/getting-started-with-the-paypal-api/ , В те дни, когда вы переписывали URL-адреса, вы могли предположить, что веб-сервер Smashing Magazine фактически обслуживает файл, расположенный по адресу… / 2011/09/05 / Getting-Start-with-PayPal-Api / index.html. Фактически, WordPress широко использует перезапись URL.
WordPress позволяет автору выбирать собственный URL для статьи.
Файл WordPress .htaccess выглядит так:
RewriteEngine On RewriteBase / RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule. /index.php [L]
-F означает «это файл», а -d означает «это каталог». Это сообщает Apache, что если запрошенное имя файла не является файлом , а запрошенное имя файла не является каталогом , то все переписать (т.е. любой путь, содержащий любой символ) на страницу index.php . Если вы запрашиваете существующее изображение или страницу входа wp-login.php , то правило не срабатывает. Но если вы запрашиваете что-то еще, например / 2011/09/05 / Getting-Start-with-the-PayPal-Api /, то файл index.php вступает в действие.
Внутри index.php (вероятно) просматривает переменную среды $ _SERVER ['REQUEST_URI'] и извлекает информацию, которая ему необходима, чтобы узнать, что он ищет. Это дает ему еще большую гибкость, чем правила переписывания Apache, и позволяет WordPress имитировать некоторые очень сложные правила перезаписи URL. На самом деле, при администрировании блога WordPress вы можете перейти в Настройки → Постоянная ссылка на левой стороне и выбрать тип перезаписи URL, который вы хотели бы имитировать.
Настройки постоянной ссылки WordPress, позволяющие вам выбрать тип перезаписи URL, который вы хотели бы имитировать.
Переписывание строк запроса
Если вас нанимают воссоздать существующий веб-сайт с нуля, вы можете использовать переписывание URL-адресов, чтобы перенаправить 20 самых популярных URL-адресов старого веб-сайта в местоположения на новом веб-сайте. Это может включать перенаправление таких вещей, как prod.php? Id = 20, на products / great-product / 2342, которое само перенаправляется на страницу фактического продукта.
RewriteRule в Apache применяется только к пути в URL, а не к таким параметрам, как id = 20. Чтобы выполнить такой тип переписывания, вам необходимо обратиться к переменной среды Apache% {QUERY_STRING}. Это можно сделать так:
RewriteEngine On RewriteCond% {QUERY_STRING} ^ id = 20 $ RewriteRule ^ prod.php $ ^ products / great-product / 2342 $ [L, R = 301] RewriteRule ^ products / (. *) / ([0-9] + ) $ ^ productview.php? id = $ 1 [L]
В этом примере первый RewriteRule запускает постоянное перенаправление со старого веб-сайта на новый веб-сайт. Второе правило переписывает новый URL-адрес на реальную страницу PHP, которая отображает продукт.
Примеры перезаписи URL на сайтах покупок
Для сложных веб-сайтов, управляемых контентом, все еще существует проблема сопоставления дружественных URL-адресов с базовыми ресурсами. Простые примеры, приведенные выше, выполняли это сопоставление вручную, вручную связывая URL-адрес, такой как horse.htm, с файлом или ресурсом Xu8JuefAtua.htm. Википедия ищет ресурс на основе заголовка, а WordPress применяет несколько сложных внутренних наборов правил. Но что, если ваши данные более сложны, с тысячами продуктов в сотнях категорий? В этом разделе показан подход, который используют Amazon и многие другие торговые сайты.
Если вы когда-нибудь сталкивались с подобным URL на Amazon, http://www.amazon.co.uk/High-Voltage-AC-DC/dp/B00008AJL3 Возможно, вы предположили, что на веб-сайте Amazon есть подкаталог с именем / High-Voltage-AC-DC / dp /, содержащий файл с именем B00008AJL3.
Это очень маловероятно. Вы можете попробовать изменить имя «директории» верхнего уровня, и вы все равно попадете на ту же страницу, http://www.amazon.co.uk/ Испытание -Voltage-AC-DC / dp / B00008AJL3.
Немного в конце - вот что действительно имеет значение. Посмотрев вниз по странице, вы увидите, что B00008AJL3 - это ASIN этого альбома AC / DC (стандартный идентификационный номер Amazon). Если вы измените это, вы получите «Страница не найдена» или совершенно другой продукт: B003BEZ7HI .
/ Dp / также имеет значение. Изменение этого приводит к «Страница не найдена». Итак, B00008AJL3, вероятно, сообщает Amazon, что отображать, а dp сообщает веб-сайту, как его отображать. Это перезапись URL в действии, при этом исходный URL может быть переписан в нечто вроде: http://www.amazon.co.uk/ d isplay p roduct.php? asin = B00008AJL3 .
Особенности URL-адреса Amazon
Это вводит некоторые важные функции URL-адресов Amazon, которые можно применять к любому веб-сайту со сложным набором ресурсов. Он показывает, что URL может быть сгенерирован автоматически и может включать до трех частей:
- Слова В этом случае слова основаны на альбоме и исполнителе, и все не алфавитно-цифровые символы заменяются. Таким образом, косая черта в AC / DC становится дефисом. Это то, что помогает людям и поисковым системам.
- Идентификационный номер Или что-то, что говорит веб-сайту, что искать, например, B00008AJL3.
- Идентификатор Или что-то, что говорит веб-сайту, где его искать и как его отображать. Если dp сообщает Amazon, что нужно искать продукт, то где-то вдоль линии, вероятно, запускается оператор базы данных, такой как SELECT * FROM products WHERE id = 'B00008AJL3'.
Другие примеры покупок
Многие другие торговые сайты имеют такие URL-адреса. В приведенном ниже списке идентификационный номер и (предполагаемый) идентификатор выделены жирным шрифтом:
- http://www.ebay.co.uk/**itm**/Ian-Rankin-Set-Darkness-Rebus-Novel-/**140604842997**
- http://www.kelkoo.com/**c**-**138201**-lighting/brand/caravan
- ** 5266430 ** _ ** 3 **
- http://www.gumtree.com/**p**/for-sale/boys-bmx-bronx-blaze/**97669042**
- ** с ** / Телевизоры / LCD-Плазма-LED-телевизоры / ** 1844 **
Существенным преимуществом этого типа URL является то, что фактические слова могут быть изменены, как показано ниже. Пока идентификационный номер остается прежним, URL все равно будет работать. Таким образом, продукты могут быть переименованы без разрыва старых ссылок. Более сложные веб-сайты (такие как Ciao выше) будут перенаправлять измененный URL-адрес обратно на реальный и, таким образом, избегать создания внешнего вида дублированного контента (дополнительную информацию по этой теме см. Ниже).
Веб-сайты, использующие перезапись URL-адресов, более гибки в использовании своих URL-адресов - слова могут измениться, но страница все равно будет найдена.
Дружественные URL
Теперь вы знаете, как сопоставить приятные дружественные URL-адреса с соответствующими веб-страницами, но как в первую очередь создать эти удобные URL-адреса?
Если бы мы следовали текущему совету, мы бы разделяли слова дефисами а не подчеркивания и использовать последовательно. Строчные могут быть предпочтительнее, потому что большинство людей ищут в нижнем регистре. Знаки препинания, такие как точки и запятые, также должны быть превращены в дефисы, иначе они превратятся в такие вещи, как% 2C, которые выглядят некрасиво и могут сломать URL при копировании и вставке. Возможно, вы захотите удалить апострофы и скобки полностью по той же причине.
Независимо от того, чтобы заменить акцентированные символы спорно. URL-адреса с акцентами (или любые нелатинские символы) могут выглядеть плохо или ломаться при отображении в другом символьном формате. Но замена их неакцентированными эквивалентами может затруднить поиск URL-адресов поисковыми системами (и даже сложнее, если их заменить дефисами). Если ваш веб-сайт предназначен для преимущественно французской аудитории, то, возможно, оставьте французские акценты в нем. Но замените их, если французских слов мало и они далеко на основном английском сайте.
Эта функция PHP лаконично обрабатывает все вышеперечисленные предложения:
function GenerateUrl ($ s) {// Преобразование акцентированных символов, удаление скобок и апострофов $ из = explode (',', "ç, æ, œ, á, é, í, ó, ú, à, è, ì, о, и, A, E, I, O, U, Y, A, E, I, O, U, A, E, I, O, и, (,), [,], ' "); $ to = explode (',', 'c, ae, oe, a, e, i, o, u, a, e, i, o, u, a, e, i, o, u, y, a, е, я, о, у, а, е, я, о, у ,,,,,, '); // Выполнить замены и преобразовать все другие не алфавитно-цифровые символы в пробелы $ s = preg_replace ('~ [^ wd] + ~', '-', str_replace ($ from, $ to, trim ($ s))) ; // Удаляем a - в начале или конце и возвращаем строчную букву strtolower (preg_replace ('/ ^ - /', ', preg_replace (' / - $ / ',', $ s))); }
Это будет генерировать URL-адреса, как это:
echo GenerateUrl ("Pâtisserie (Always FRESH!)"); // возвращает "кондитерская всегда свежая"
Или, если вы хотите получить ссылку на переменную $ product из базы данных:
$ product = array ('title' => 'Great product', 'id' => 100); echo '<a href="'. GenerateUrl ($product['title']).'/'. $product['id'].'">'; echo $ product ['title']. '</a>';
Изменение имен страниц
Поисковые системы вообще игнорируют дублированный контент (т.е. несколько страниц с одинаковой информацией). Но если они считают, что ими манипулируют, поисковые системы будут активно наказывать сайт, поэтому избегайте этого, где это возможно. Google рекомендует использовать перенаправления 301 для отправки пользователей со старых страниц на новые.
Когда перезаписанная страница переименована, старый и новый URL все равно должны работать. Кроме того, чтобы избежать риска дублирования, старый URL-адрес должен автоматически перенаправляться на новый, как это делает WordPress.
Делать это в PHP относительно легко. Следующая функция просматривает текущий URL-адрес и, если он не совпадает с желаемым URL-адресом, перенаправляет пользователя:
function CheckUrl ($ s) {// Получить текущий URL без строки запроса с начальной косой чертой $ myurl = preg_replace ('/?.*$/', ', $ _SERVER [' REQUEST_URI ']); // Если он не совпадает с желаемым URL, то перенаправить if ($ myurl! = "/ $ S") {Header ("Location: / $ s", true, 301); выход;} }
Это будет использоваться так:
$ producturl = GenerateUrl ($ product ['title']). '/'. $ Продукта [ 'ID']; CheckUrl ($ producturl); // перенаправляет пользователя, если он не в том месте
Если вы хотите использовать эту функцию, обязательно сначала протестируйте ее в своей среде и с правилами перезаписи, чтобы убедиться, что она не вызывает бесконечных перенаправлений. Вот как это будет выглядеть:
Это то, что происходит, когда Google Chrome посещает страницу, которая перенаправляет на себя.
Контрольный список и устранение неисправностей
Используйте следующий контрольный список для реализации перезаписи URL.
1. Проверьте, что это поддерживается
Не все веб-серверы поддерживают перезапись URL. Если вы поместите свой файл .htaccess на тот, который этого не делает, он будет проигнорирован или выдаст «500 Internal Server Error».
2. Запланируйте свой подход
Выясните, что будет отображаться на что и как будет найдена правильная информация. Возможно, вы хотите ввести новые URL-адреса, например my-great-product / p / 123, чтобы заменить текущие URL-адреса продуктов, например product.php? Id = 123, и заменить new-category / c / 12 на category.php? ID = 12.
3. Создайте свои правила перезаписи
Создайте файл .htaccess для ваших новых правил. Сначала вы можете сделать это в подкаталоге / testing / и использовать флаг [R], чтобы вы могли видеть, куда идут вещи:
RewriteEngine On RewriteRule ^. + / P / ([0-9] +) product.php? Id = $ 1 [NC, L, R] RewriteRule ^. + / C / ([0-9] +) category.php? id = $ 1 [NC, L, R]
Теперь, если вы посетите сайт www.mywebsite.com/testing/my-great-product/p/123, вас следует отправить по адресу www.mywebsite.com/testing/product.php?id=123. Вы получите «Страница не найдена», потому что product.php отсутствует в вашем подкаталоге / testing /, но по крайней мере вы будете знать, что ваши правила работают. Когда вы будете удовлетворены, переместите файл .htaccess в корневой каталог документа и удалите флаг [R]. Теперь www.mywebsite.com/my-great-product/p/123 должен работать.
4. Проверьте свои страницы
Убедитесь, что ваши новые URL-адреса содержат все правильные изображения, файлы CSS и JavaScript. Например, веб-браузер теперь считает, что ваша веб-страница называется 123 в каталоге my-great-product / p /. Если HTML ссылается на файл с именем images / logo.jpg, то веб-браузер запросит изображение с www.mywebsite.com/my-great-product/p/images/logo.jpg и выдаст «Файл». не найдено."
Вам также необходимо переписать расположение изображений или сделать ссылки абсолютными (например, <img src = ” / images / logo.jpg” />) или поместить базовую ссылку в верхнюю часть <head> страницы (<base HREF = «/ product.php» />). Но если вы сделаете это, вам нужно будет полностью указать любые внутренние ссылки, которые начинаются с # или? потому что теперь они идут к чему-то вроде product.php # details.
5. Измените свои URL
Теперь найдите все ссылки на ваши старые URL-адреса и замените их новыми URL-адресами, используя функцию, такую как GenerateUrl, для последовательного создания новых URL-адресов. Это единственный шаг, который может потребовать углубленного изучения кода вашего сайта.
6. Автоматически перенаправить ваши старые URL
Теперь, когда перезапись URL-адресов уже готова, вы, вероятно, хотите, чтобы Google забыл о ваших старых URL-адресах и начал использовать новые. То есть, когда в результате поиска появляется product.php? Id = 20, вы хотите, чтобы пользователь был явно перенаправлен на my-great-product / p / 123, который затем был бы внутренне перенаправлен обратно на product.php? ID = 20.
Это обратное тому, что уже делает перезапись вашего URL. Фактически, вы можете добавить другое правило в .htaccess для достижения этой цели, но если вы получите правила в неправильном порядке, то браузер перейдет в цикл перенаправления.
Другой подход заключается в том, чтобы сделать первое перенаправление в PHP, используя что-то вроде функции CheckUrl, описанной выше. Это дает дополнительное преимущество: если вы переименуете продукт, старый URL-адрес немедленно станет недействительным и будет перенаправлен на новый.
Не забудьте указать новые URL-адреса на карте сайта, в каналах продуктов и везде, где они появляются.
Заключение
Перезапись URL-адреса - это относительно быстрый и простой способ повысить привлекательность вашего сайта для клиентов и поисковых систем. Мы попытались объяснить некоторые реальные примеры перезаписи URL-адресов и предоставить технические подробности для их реализации на вашем собственном веб-сайте. Пожалуйста, оставляйте любые комментарии или предложения ниже.
Как помогает перезапись URL?Как переписывание URL может помочь вашему поисковому рейтингу?
Что такое перезапись URL?
Как помогает перезапись URL?
Можете ли вы угадать, что продает эта веб-страница?
B & Q имеет более 300 филиалов и поэтому, вероятно, намного больше по бюджету, размеру и охвату, так почему же он не так хорош для этого поискового запроса?
Итак, как B & Q может превратить это в нечто более узнаваемое, например, без реструктуризации всего своего сайта?
Jsp?
Php?
Php?