Рерайт для начинающих — Студия копирайтинга Text-TXT
О рерайтевыполнение, интересный, работа, Рерайт, способ, текстText-TXT
Если вы достаточно грамотны и не боитесь работать с текстами, то вам просто необходимо научиться заниматься рерайтингом. Ведь рерайт текста – это не просто один из способов заработать деньги (причём для этого вам совершенно не нужно вставать с утра пораньше, идти куда-то на работу и слушать ненавистных начальников), но и узнать много нового и интересного из статей, которые вы будете рерайтить.
Что же такого полезного в рерайте?
Во-первых, рейратинг статьи – это довольно интересное занятие! Заказчик скидывает вам исходник на необходимую ему тему, и у вас, хотите вы того или нет, появляются знания в данной области. Вполне возможно, что эта тема окажется вам интересной, хотя в повседневной жизни, вы бы и не обратили на неё внимания.
Во-вторых, рерайт текста – это прекрасная возможность раскрыть свой творческий потенциал! Ведь для того, чтобы текст понравился заказчику, читателю и чтобы достичь необходимого процента уникальности, Вы можете экспериментировать со словами и выражениями, а также, если можно так сказать, «выложиться по полной», использовать фантазию и воображение при выполнении качественного рерайта текстов.
В-третьих, занимаясь рерайтом статей, вы сможете развиваться. Не сдерживайте фантазию, и вы сможете найти свой, уникальный подход к каждому тексту!
В-четвёртых, рерайт помогает общению! Благодаря тому, что при выполнении рерайта текста вам будет необходимо подбирать слова-синонимы, менять обороты речи, вы без труда сможете выражать свои мысли и в реальной жизни, ваша речь станет более грамотной и красивой.
Выгода от рерайта для новичков
Если Вы до сих пор не убедились в пользе рерайта, то можно ко всему сказанному добавить, что качественный рерайт текстов – это ещё и способ зарабатывать, не выходя из дома! Прежде всего, представьте себе не минуточку жизнь без начальников, будильников и понедельников! Да, действительно, занимаясь рерайтом статей, Вы и только вы выбираете количество рабочих часов в день, только от вас зависит, в какое время суток вам удобнее работать, а когда делать перерывы на отдых! За это вас не только никто не выругает и не выгонит с работы, а даже совсем наоборот: вам за это заплатят деньги!
Рерайт – эффективный способ заработка!
Не знаю как вы, но для себя я решил уже достаточно давно, рерайт – это не просто интересное занятие «для души», но и просто способ заработка! Ведь если вы будете уделять рерайту то время, которое сейчас уделяете работе (или поиску работы), то сможете зарабатывать дома не меньше вашей зарплаты и навсегда забудете о походах на нелюбимую работу.
Готовы ли вы поменять свой образ жизни, мышление и начать зарабатывать рерайтом – решать, конечно же, вам, дорогие читатели! Но чтобы вы не решили, я искренне желаю вам успехов в любых начинаниях!
Если Вас это не затруднит, прошу вас потратить несколько минут вашего драгоценного времени и оставить комментарий. Для меня очень важно узнать мнение всех и каждого!
с чего начать? Видеоурок по рерайту!
Добрый день, уважаемые рерайтеры. Сегодня нашей темой будет рерайтинг – с чего начать обучение рерайту? Начинать лучше с простого. Поэтому сегодняшний наш урок будет посвящен легкому рерайту текстов. Мы рассмотрим пример ручной обработки текста (рерайтинга), и поможет нам в этом программа Word.
Рерайтинг в Word – с чего начать?Вот видео, которое предлагает нам автор Ксения:
Рерайт: с чего начать?
Поверхностный рерайт: с чего начать?youtube.com/embed/IMyshYsWMDU?feature=oembed» frameborder=»0″ allowfullscreen=»»> |
В видеоуроке мы рассмотрели пример рерайтинга текста:
- Начинать рерайт нужно с проверки уникальности на Text.ru. В результате мы узнаем процент уникальности текста, а все неуникальное будет подсвечено сиреневым.
- Далее открываем программу Word и вставляем в нее текст, раскрашенный сиреневым.
- Теперь можно начинать заменять слова на синонимы. Проходим по каждому слову, помеченным сиреневым. В программе Word есть кнопка “подобрать синоним” (см. видео).
- Не обязательно заменять каждое слово. Есть несколько приемов рерайтинга:
- Пропуск слов. Если у слова нет синонимов – пропускаем без изменений.
- Перемена мест. В рерайтинге можно начать использовать перестановки слов. Как показано в видеоуроке, в словосочетании “девочки и мальчики” слова можно поменять местами.
- Удаление слов. Некоторые слова можно попросту удалить. Пример: в словосочетании: “вполне можно” слово “вполне” можно убрать. Смысл предложения от этого не пострадает, а уникальность только прибавится.
- Добавление слов. Справедливо и обратное: в рерайтинге можно начать разбавлять текст своими словами. Если перед словом “можно” не слова “вполне”, то его можно добавить. В результате смысл не изменится, а уникальность рерайта станет выше.
Это все быстрый рерайт, а ведь есть еще глубокий рерайт – там действуют другие законы и правила. Кстати о правилах быстрого рерайтинга, вот они:
Правила рерайтинга: с чего начать и где остановиться
Многие начинающие рерайтеры не знают, когда остановиться в рерайтинге статьи. Ведь в видеоуроке четко видно, что не все слова были заменены. Так где эта грань, между недостаточной уникальностью и готовым текстом?
Особенно это касается программы Адвего Плагиатус. Но мы работаем с Text.ru, а он более придирчив. Что делать, если заменили больше половины всех слов, а он показывает, скажем, 78%? В этом случае нужно начать рерайт по другой тактике:
Смотрим только те участки, где подсвеченных слов больше. Например, если все группы по 4 слова разбавлены Вашими заменами, начинаем борьбу с цепочками из 3 слов.
Чаще всего уникальность 100% по Text.ru достигается за счет искоренения неуникальных фраз длиною в 3 слова.
То есть для Text.ru стандартного правила рерайтинга для начинающих “делаем замену в каждом четвертом слове” недостаточно, нужен более тщательный рерайтинг.
Не рекомендуется использовать быстрый рерайт в случае с проверкой по Text.ru
Практика показывает, что начинать быстрый рерайтинг для получения уникальности по Text.ru не стоит: усилий на легкий рерайт уйдет даже больше, чем если бы начали писать текст с нуля (это называют глубоким рерайтом).
Где пригодится поверхностный рерайтинг, с чего начать рерайт?
Однако применять быстрый рерайт вполне можно при работе с Advego и Etxt. Алгоритмы проверки у них другие, и легкий рерайт они распознать не могут. Точнее могут, но на степени уникальности это никак не отразится. Пример: Адвего может показать такой результат проверки: “95%/41%”. Что это значит? Это значит, что текст уникален на 95%, однако на 59% текст состоит из рерайта. К этому показателю никто (почти) строго не относится. Большинство заказчиков на биржах рерайтинга пишут “Требуется 95% уникальность”. Они имеют ввиду первый показатель по Адвего. И лишь изредка попадаются заказы с пометкой “Адвего не должен обнаружить рерайт в тексте”. Вот это – действительно повод задуматься, стоит ли начинать рерайтить такой заказ или отказаться. Впрочем, методика глубокого рерайта обведет вокруг пальца даже эту замысловатую проверку на рерайт.
Резюме: с чего начать рерайтинг?
Быстрый рерайт относится больше к так называемому черному рерайтингу (в его арсенал входят также синонимайзеры, программы для авторерайта и многое другое). Но тем не менее, проще начинать именно с поверхностного рерайта, потом уже можно наловчиться и делать глубокий рерайт. А там и до копирайтинга, и до SEO-копирайтинга недалеко. Естественно, уровень заработка копирайтера намного выше, чем стоимость рерайта на заказ.
Идем дальше:
Как написать план статьи? Пример »
(Visited 42 times, 1 visits today)
mod_rewrite Учебное пособие для начинающих
mod_rewrite — замечательная функция веб-сервера Apache. Он очень гибкий и может делать всевозможные полезные вещи.
mod_rewrite может быть довольно сложным для новичков из-за его несколько сложного синтаксиса и механизма обработки. Однако, как только вы поймете несколько основных концепций, вы сможете использовать mod_rewrite, чтобы делать некоторые довольно умные вещи с вашим сайтом.
В этом уроке вы узнаете, что такое mod_rewrite и для чего его можно использовать. Вы узнаете, как создать несколько основных правил mod_rewrite, и изучите несколько полезных примеров из реальной жизни, которые вы можете использовать на своем собственном веб-сайте.
Что такое mod_rewrite?
mod_rewrite — это модуль Apache для управления (перезаписи) URL-адресов. Часто это означает получение URL-адреса, запрошенного посетителем, и отправку ему контента по другому URL-адресу. Например, посетитель может ввести в браузер следующий URL-адрес:
http://www.example.com/page.html
Обычно Apache затем отправляет посетителю содержимое файла page.html
. . Однако с помощью mod_rewrite вы можете отправить обратно содержимое другого URL-адреса, например:
http://www.example.com/another_page.html
Здесь важно то, что эта перезапись происходит внутри сервера Apache. В адресной строке браузера по-прежнему отображается http://www.example.com/page.html
, но Apache отправляет обратно содержимое по адресу http://www.example.com/another_page.html
:

Сравните это с перенаправлениями HTTP, которые сообщают браузеру о необходимости посетить другой URL-адрес, отличный от запрошенного.
Как вы вскоре увидите, вы также можете использовать mod_rewrite для перенаправления HTTP, а также для других вещей, таких как возврат кодов ошибок HTTP.
Что можно делать с помощью mod_rewrite
mod_rewrite позволяет создавать всевозможные правила для управления URL-адресами. Например, вы можете вставить значения, извлеченные из запрошенного URL-адреса, в новый URL-адрес, что позволит вам динамически переписывать URL-адреса. Или вы можете проверить переменные сервера, такие как пользовательский агент (браузер), и переписать URL-адрес только в том случае, если браузером является, скажем, Safari, работающий на iPhone.
Вот несколько распространенных вариантов использования mod_rewrite:
- Создание «дружественных» URL-адресов, которые сопоставляются с «некрасивыми» URL-адресами. Например, вы можете сопоставить красивый URL-адрес
www.
с реальным URL-адресомexample.com/articles/my-article/
www.example.com/display_article.php?articleId=my-article
. Тогда каждый сможет использовать дружественный URL вместо реального. - Остановка кражи/хотлинкинга изображений. Чтобы другие сайты не ссылались на ваши изображения на своих страницах, вы можете использовать mod_rewrite для отправки ошибки «Запрещено», если ссылающийся URL-адрес не находится на вашем собственном сайте.
- Перенаправление на канонические URL-адреса. Доступ ко многим веб-страницам можно получить по нескольким URL-адресам, например,
www.example.com/mypage.html
иexample.com/mypage.html
. Вы можете использовать mod_rewrite, чтобы всегда перенаправлять браузеры на «правильный» URL-адрес, напримерwww.example.com/mypage.html
. Помимо прочего, это гарантирует, что в результатах поиска будет отображаться только правильный URL-адрес. - Предотвращение ошибок 404 при реорганизации сайта.
Допустим, вы переделали свой сайт и переместили страницу на
www.example.com/myarticle.html от
доwww.example.com/articles/myarticle.html
. Используя mod_rewrite, вы можете перенаправитьwww.example.com/myarticle.html
наwww.example.com/articles/myarticle.html
, чтобы посетители не получали 404 ошибки «не найдено» при посещении старого URL. Благодаря гибкости mod_rewrite вы можете легко создавать общие правила, которые могут сопоставлять все старые URL-адреса с вашим новым форматом URL-адресов.
Как использовать mod_rewrite
Чтобы использовать mod_rewrite, вы создаете директивы Apache, чтобы указать mod_rewrite, что вы хотите сделать. Директивы — это просто настройки конфигурации. Часто вы помещаете эти директивы в файл .htaccess
в папке верхнего уровня (корневой каталог документа) вашего веб-сайта. Затем директивы применяются ко всему вашему сайту.
Две самые важные директивы mod_rewrite:
-
RewriteEngine
: Это отключает или включает механизм mod_rewrite для текущего запроса. -
RewriteRule
: создает правило для перезаписи одного URL-адреса на другой. 9dummy.html$ — это регулярное выражение . Это означает: «Совпадать с началом URL-адреса (исключая часть имени домена), за которым следует текстdummy.html
, за которым следует конец URL-адреса». Если вы новичок в регулярных выражениях, вот хорошее введение.Теперь откройте веб-браузер и перейдите по URL-адресу
dummy.html
на вашем сайте (например,http://www.example.com/dummy.html
). Если все пойдет хорошо, вы будете перенаправлены наhttp://www.google.com
.Если вы получаете сообщение об ошибке 404 Not Found, вероятно, модуль mod_rewrite не включен на вашем веб-сервере или веб-сайте. Спросите у своей хостинговой компании, могут ли они включить его для вас.
Как работает
RewriteRule
Директива
Общий синтаксис директивы:RewriteRule
используется для создания правил перезаписи.. RewriteRule Шаблон Замена [Необязательные флаги]
-
Шаблон
— это шаблон регулярного выражения. Если URL-адрес соответствует этому шаблону, правило обрабатывается. В противном случае правило пропускается. -
Замена
— это новый URL-адрес, который следует использовать вместо совпадающего URL-адреса. -
[Необязательные флаги]
— это один или несколько флагов, позволяющих изменить поведение правила. О флагах позже.
Несколько примеров mod_rewrite
mod_rewrite — это гораздо больше, чем только что показанный простой пример. Самый простой способ объяснить mod_rewrite — рассмотреть несколько практических примеров, которые вы сделаете в следующих разделах.
Пример 1. Как избежать ошибки 404
Время от времени вы можете изменить URL-адрес страницы на своем сайте.
'my-old-url.html'
, за которым следует конец URL-адреса ($
)»./my-new-url.html
- Вторая часть
RewriteRule
— это URL-адрес, который вы хотите использовать вместо этого. В данном случае это просто/my-new-url.html
.[R=301,L]
- Третья необязательная часть
RewriteRule
— это один или несколько флагов , разделенных запятыми и заключенных в квадратные скобки. Эти флаги позволяют добавлять в правило определенные параметры и действия. В данном случае есть 2 флага:R=301
означает «перенаправить 301 на новый URL», аL
означает «последнее правило» — другими словами, «остановить обработку, если это правило соответствует запрошенному URL».В регулярных выражениях точка (
.
) означает «соответствует любому символу». Итак, чтобы явно сопоставить точку в'my-old-url.html'
, вам нужно поместить обратную косую черту () перед точкой, чтобы избежать ее, как показано в регулярном выражении выше.
Пример 2. Создание понятных URL-адресов
Допустим, вы написали PHP-скрипт
display_article.php
для отображения статей на вашем сайте. Вы можете просмотреть статью, используя следующий URL-адрес:http://www.example.com/display_article.php?articleId=my-article
Этот URL-адрес выглядит довольно уродливым, а строка запроса внутри него (
?articleId =моя-статья
) может сбить с толку некоторые поисковые системы. Гораздо лучше будет выглядеть URL:http://www.example.com/articles/my-article/
Вы можете использовать mod_rewrite, чтобы преобразовать первый формат URL во второй. Для этого просто добавьте следующие 9/]+ подшаблон в регулярном выражении (например,
"my-article"
) в качестве параметраarticleId
.$1
называется обратной ссылкой — в ней хранится текст, соответствующий подшаблону. Если бы ваше регулярное выражение содержало другой подшаблон в круглых скобках, тогда текст, соответствующий второму подшаблону, был бы сохранен в$2
и так далее.[л]
- Как вы видели в предыдущем примере, этот флаг указывает mod_rewrite прекратить обработку, если это правило соответствует запрошенному URL-адресу. Как правило, это хорошая идея, если только вы не хотите, чтобы URL-адрес был переписан другими 9 пользователями.0015 RewriteRule позже в файле
.htaccess
.Таким образом, указанный выше
RewriteRule
принимает запрошенный URL-адрес в форматеhttp://www.example.com/articles/my-article/
и предоставляет содержимое по URL-адресуhttp://www.example. com/display_article.php?articleId=my-article
вместо этого.Пример 3: Предотвращение горячих ссылок на изображения
Другое распространенное использование mod_rewrite — запретить другим веб-сайтам ссылаться на изображения на вашем собственном сайте.
Допустим, у вас есть страница на вашем сайте,
http://www.example.com/mypage.html
, который содержит следующий тегimg
:Другой сайт может напрямую ссылаться на вашу фотографию со следующим тегом на своей странице:
Это означает, что другой сайт не только «заимствует» ваше изображение для своей страницы, но также использует пропускную способность вашего сервера для отображения изображения на своей странице. Если другой сайт получает много посетителей, это может быть большой проблемой! 9http://(www.)?example.com/.*$ [NC] Правило перезаписи .+.(gif|jpg|png)$ — [F]
После этого любые запросы браузера на изображение на вашем сайте, где URL-адрес ссылки начинается с домена, отличного от
www.example.com
илиexample.com
, будут отклонены с кодом «403 Forbidden». ошибка, в результате чего изображение не отображается на странице ссылки (и почти не используется ваша пропускная способность).Вот как работает этот набор правил:
-
RewriteEngine на 9http://(www.)?example.com/.*$
[NC] - Эта вторая директива
RewriteCond
гласит: «ЕслиHTTP_REFERER
не начинается сhttp://www.example.com/
илиhttp://example.com/
». Флаг[NC]
делает совпадение нечувствительным к регистру.Если одно из этих условий 2
RewriteCond
не выполняется, следующееRewriteRule
пропускается. -
Правило перезаписи .+.(gif|jpg|png)$ - [F]
- Фактическое правило перезаписи использует флаг
[F]
для отправки обратно ошибки «403 Forbidden», если URL-адрес содержит имя файла изображения (то есть имя файла, заканчивающееся на.gif
,.jpg
или.png
).-
(дефис) для параметраЗамена
означает «не переписывать URL-адрес на другой URL-адрес».
Итак, весь файл
.htaccess
гласит: «ЕслиHTTP_REFERER
не пусто, аHTTP_REFERER
не начинается сhttp://example.com/
илиhttp://www.example.com/
, а запрошенный URL-адрес содержит имя файла изображения, отклоните запрос с ошибкой «403 Forbidden». .Резюме
В этой статье вы познакомились с модулем Apache mod_rewrite для управления URL-адресами. Вы посмотрели, как работает mod_rewrite и что с ним можно сделать. Вы видели, как создавать правила mod_rewrite, используя директиву
RewriteRule
, и как выполнять условную перезапись с помощью директивы 9.0015 Директива RewriteCond . Попутно вы рассмотрели 3 практических примера mod_rewrite:- 301 редиректы
- Создание дружественных URL и
- Прекращение хотлинкинга изображений.
В этом туториале поверхностно рассмотрен mod_rewrite. Если вы хотите узнать больше о том, что может сделать mod_rewrite, ознакомьтесь с официальной документацией.
Веселиться!
Переписывание URL для начинающих | Один на холме
Введение
Изменение URL-адреса может быть одним из лучших и самых быстрых способов улучшить удобство использования и удобство поиска на вашем сайте. Это также может быть источником почти бесконечных несчастий и страданий. Определенно стоит поиграть с ним осторожно — рекомендуется много тестов. С большой силой приходит большая ответственность и все такое.
В Интернете уже есть несколько других руководств, которые могут подойти вам лучше, чем это:
- Руководство по переписыванию URL-адресов Apache — лучшее руководство около0044
Прежде чем читать дальше, вам может быть полезно иметь под рукой шпаргалку mod_rewrite и/или шпаргалку по регулярным выражениям. Базовое понимание концепции регулярных выражений также было бы очень полезным.
Что такое «Перезапись URL»?
Большинство динамических сайтов включают в свои URL-адреса переменные, которые сообщают сайту, какую информацию показывать пользователю.
Как правило, это дает URL-адреса, подобные приведенным ниже, сообщая соответствующему сценарию на сайте о загрузке продукта номер 7.
http://www.pets.com/show_a_product.php?product_id=7
Проблемы с такой структурой URL заключаются в том, что URL совершенно не запоминается. Это трудно прочитать по телефону (вы будете удивлены, узнав, сколько людей передают URL-адреса таким образом). Поисковые системы и пользователи не получают никакой полезной информации о содержании страницы с этого URL-адреса. По этому URL нельзя сказать, что на этой странице можно купить норвежского голубого попугая (прекрасное оперение). Это довольно стандартный URL-адрес, который вы получаете по умолчанию от большинства CMS. Сравните это с этим URL:
http://www.pets.com/products/7/
Явно более чистый и короткий URL-адрес. Его гораздо легче запомнить и гораздо легче прочитать. Тем не менее, он точно никому не говорит, к чему он относится. Но мы можем сделать больше:
http://www.
pets.com/parrots/norwegian-blue/
Теперь мы кое-что достигли. Вы можете сказать по URL-адресу, даже если он вырван из контекста, что вы, вероятно, найдете на этой странице. Поисковые системы могут разбить этот URL-адрес на слова (дефисы в URL-адресах воспринимаются поисковыми системами как пробелы, а символы подчеркивания — нет), и они могут использовать эту информацию для более точного определения содержания страницы. Это URL-адрес, который легко запомнить и передать другому человеку.
К сожалению, последний URL не может быть легко понят сервером без некоторой работы с нашей стороны. Когда для этого URL-адреса делается запрос, сервер должен решить, как обработать этот URL-адрес, чтобы он знал, что отправить обратно пользователю. Перезапись URL-адресов — это метод, используемый для «перевода» URL-адреса, такого как последний, во что-то, что сервер может понять.
Платформы и инструменты
В зависимости от программного обеспечения, которое работает на вашем сервере, у вас уже может быть доступ к модулям перезаписи URL-адресов.
Если нет, большинство хостов включат или установят соответствующие модули для вас, если вы очень хорошо их попросите.
Apache — самая простая система для запуска перезаписи URL. Обычно он поставляется со своим собственным встроенным модулем перезаписи URL, mod_rewrite включен, и работа с mod_rewrite так же проста, как загрузка правильно отформатированных и именованных текстовых файлов.
IIS, серверное программное обеспечение Microsoft, в стандартной комплектации не включает возможность перезаписи URL-адресов, но существуют надстройки, которые могут обеспечить эту функциональность. ISAPI_Rewrite — это тот, с которым я рекомендую работать, так как на данный момент я считаю, что он наиболее близок к функциональности mod_rewrite. Инструкции по установке и настройке ISAPI_Rewrite можно найти в конце этой статьи.
Следующий код основан на перезаписи URL с использованием mod_rewrite.
Базовая перезапись URL
Для начала рассмотрим простой пример. У нас есть веб-сайт, и у нас есть один PHP-скрипт, который обслуживает одну страницу.
Его URL-адрес:
http://www.pets.com/pet_care_info_07_07_2008.php
Мы хотим очистить URL-адрес, и наш идеальный URL-адрес будет:
http://www.pets.com /pet-care/
Для того, чтобы это работало, нам нужно указать серверу внутренне перенаправлять все запросы URL-адреса «pet-care» на «pet_care_info_07_07_2008.php». Мы хотим, чтобы это происходило внутри, потому что мы не хотим, чтобы URL-адрес в адресной строке браузера менялся.
Для этого нам нужно сначала создать текстовый документ с именем «.htaccess», содержащий наши правила. Он должен называться именно так (не «.htaccess.txt» или «rules.htaccess»). Это будет помещено в корневой каталог сервера (та же папка, что и «pet_care_info_07_07_2008.php» в нашем примере). Там уже может быть файл .htaccess, и в этом случае мы должны отредактировать его, а не перезаписать.
Файл .htaccess — это файл конфигурации для сервера. Если в файле есть ошибки, сервер отобразит сообщение об ошибке (обычно с кодом ошибки «500»).
Если вы передаете файл на сервер с помощью FTP, вы должны убедиться, что он передается в режиме ASCII, а не в ДВОИЧНОМ. В этом случае мы используем этот файл для выполнения двух простых задач: во-первых, чтобы указать Apache включить механизм перезаписи, а во-вторых, чтобы сообщить Apache, какое правило перезаписи мы хотим использовать. Нам нужно добавить в файл следующее: 9pet-care/?$ pet_care_info_01_02_2008.php [NC,L] # Обрабатывать запросы на «уход за домашними животными»
Пара моментов, на которые следует обратить внимание: все, что следует за символом решетки в файле .htaccess, игнорируется как комментарий, и я бы рекомендовал вам широко использовать комментарии; а строку «RewriteEngine» следует использовать только один раз для каждого файла .htaccess (обратите внимание, что я не включил эту строку с этого момента в пример кода).
В строке «RewriteRule» происходит волшебство. Строку можно разбить на 5 частей: 9/pet-care/?$ — «Выкройка». Сервер будет проверять URL-адрес каждого запроса к сайту, чтобы увидеть, соответствует ли этот шаблон.
Если это так, то Apache заменит URL-адрес запроса на следующий раздел «замены».
-
- pet_care_info_01_02_2003.php — «Подмена». Если приведенный выше шаблон соответствует запросу, Apache использует этот URL-адрес вместо запрошенного URL-адреса.
- [NC,L] — «Флаги», которые сообщают Apache, как применять правило. В этом случае мы используем два флага. «NC» сообщает Apache, что это правило не должно учитывать регистр, а «L» сообщает Apache не обрабатывать больше правил, если используется это правило.
- # Обработка запросов на «уход за домашними животными» — Комментарий, поясняющий, что делает правило (необязательно, но рекомендуется)
Приведенное выше правило представляет собой простой метод перезаписи одного URL-адреса и является основой почти для всех переопределений URL-адресов. правила.
Шаблоны и замены
Приведенное выше правило позволяет вам перенаправлять запросы для одного URL-адреса, но настоящая сила mod_rewrite проявляется, когда вы начинаете идентифицировать и переписывать группы URL-адресов на основе содержащихся в них шаблонов.
Допустим, вы хотите изменить все URL-адреса вашего сайта, как описано в первой паре примеров выше. Ваши существующие URL-адреса выглядят следующим образом:
http://www.pets.com/show_a_product.php?product_id=7
И вы хотите изменить их, чтобы они выглядели следующим образом:
http://www. pets.com/products/7/
Вместо того, чтобы писать правило для каждого отдельного идентификатора продукта, вы, конечно, предпочтете написать одно правило для управления всеми идентификаторами продукта. Фактически вы хотите изменить URL-адреса этого формата:
http://www.pets.com/show_a_product.php?product_id={a number}
И вы хотите изменить их, чтобы они выглядели следующим образом:
http://www.pets.com/ products/{a number}/
Для этого вам нужно будет использовать «регулярные выражения». Это шаблоны, определенные в определенном формате, который сервер может понять и правильно обработать. Типичный шаблон для определения числа будет выглядеть следующим образом:
[0-9]+
Квадратные скобки содержат диапазон символов, а «0-9products/([0-9]+)/?$ show_a_product.php?product_id=$1 [NC,L] # Обработка запросов продуктов
Первое, что, я надеюсь, вы заметите, это то, что мы завернули наш шаблон в кронштейны. Это позволяет нам «обратно ссылаться» (обращаться) к этому разделу URL-адреса в следующем разделе «замены». «$1» в подстановке говорит Apache поместить все, что соответствует предыдущему шаблону в квадратных скобках, в URL-адрес в этот момент. У вас может быть много обратных ссылок, и они нумеруются в порядке их появления.
Итак, это RewriteRule теперь будет означать, что Apache перенаправляет все запросы для domain.com/products/{number}/ на show_a_product.php?product_id={тот же номер}.
Регулярные выражения
Полное руководство по регулярным выражениям выходит за рамки этой статьи. Однако важно помнить, что весь шаблон рассматривается как регулярное выражение, поэтому всегда будьте осторожны с символами, которые являются «специальными» символами в регулярных выражениях.
Чаще всего это происходит, когда люди используют точку в своем образце. В шаблоне это на самом деле означает «любой символ», а не буквальную точку, поэтому, если вы хотите сопоставить точку (и только точку), вам нужно будет «экранировать» символ — перед ним другой специальный символ, обратная косая черта, которая сообщает Apache, что следующий символ должен быть буквальным. 9rss.xml$ rss.php [NC,L] # Изменить URL фида
Это относится только к шаблону, а не к замене. Далее следуют другие символы, требующие экранирования (называемые «метасимволами»), после чего их значение указывается в квадратных скобках:
- . (любой символ)
- * (ноль или несколько предшествующих)
- + (один или несколько предшествующих)
- {} (квантификатор от минимального до максимального)
- ? (нежадный модификатор)
- ! (в начале строки означает «отрицательный шаблон») 9(начало строки или «минус», если в начале диапазона)
- $ (конец строки)
- [] (соответствует любому из содержимого)
- — (диапазон, если используется в квадратных скобках)
- () (группа, группа с обратной ссылкой)
- | (альтернатива или)
- \ (сам escape-символ)
С помощью регулярных выражений можно искать всевозможные шаблоны в URL-адресах и переписывать их при совпадении. Пришло время для другого примера — ранее мы хотели иметь возможность идентифицировать этот URL и переписать его: 9parrots/([A-Za-z0-9-]+)/?$ get_product_by_name.php?product_name=$1 [NC,L] # Обработка попугаев
При использовании этого правила любой URL-адрес, начинающийся со слова «попугаи», за которым следует косая черта (попугаи/), затем один или несколько (+) любой комбинации букв, цифр и дефисов ([A-Za-z0-9-]) (обратите внимание на дефис в конце выбора символов в квадратных скобках — его нужно добавить туда, чтобы он воспринимался буквально, а не как разделитель диапазона). Мы ссылаемся на название продукта в скобках с заменой $1. 9[A-Za-z-]+/([A-Za-z0-9-]+)/?$ get_product_by_name.php?product_name=$1 [NC,L] # Обработать все товары
Как видите, мы заменили «попугаи» шаблоном, который соответствует букве и дефису. Теперь это правило будет соответствовать чему угодно в каталоге parrots или любом другом каталоге, имя которого состоит как минимум из одной или нескольких букв и дефисов.
Флаги
Флаги добавляются в конец правила перезаписи, чтобы указать Apache, как интерпретировать и обрабатывать правило. Их можно использовать, чтобы сообщить apache обработать правило как нечувствительное к регистру, остановить обработку правил, если текущее совпадает, или множество других опций. Они разделяются запятыми и заключаются в квадратные скобки. Вот список флагов с их значениями (эта информация включена в шпаргалку, так что нет необходимости пытаться выучить их все).
- C (в цепочке со следующим правилом)
- CO=cookie (установить указанный файл cookie)
- E=var:value (установить значение переменной среды var)
- F (запрещено — отправляет пользователю заголовок 403)
- G (ушел — больше не существует)
- H=handler (установить обработчик)
- L (последний — остановить правила обработки)
- N (следующий — продолжить правила обработки)
- NC (без учета регистра)
- NE (выполнить не экранировать специальные символы URL в выводе)
- NS (игнорировать это правило, если запрос является подзапросом)
- P (прокси — т.
е. apache должен захватить удаленный контент, указанный в разделе подстановки, и вернуть его)
- PT (сквозной — использовать при обработке URL-адресов с дополнительными обработчиками, например, mod_alias)
- R (временное перенаправление на новый URL)
- R=301 (постоянное перенаправление на новый URL-адрес)
- QSA (добавить строку запроса из запроса к замененному URL-адресу)
- S=x (пропустить следующие x правил)
- T=mime-type (принудительно указать тип mime )
Движущийся контент 9article/?$ http://www.new-domain.com/article/ [R,NC,L] # Temporary Move
Добавление флага «R» в раздел флагов изменяет работу RewriteRule. Вместо внутренней перезаписи URL-адреса Apache отправит сообщение обратно в браузер (заголовок HTTP), чтобы сообщить ему, что документ временно перемещен на URL-адрес, указанный в разделе «замена». В разделе замены может быть указан либо абсолютный, либо относительный URL-адрес. Заголовок, отправленный обратно, включает код 302, указывающий на то, что перемещение является временным. 9article/?$ http://www.new-domain.com/article/ [R=301,NC,L] # Постоянное перемещение
Если перемещение является постоянным, добавьте «=301» к флагу «R» чтобы Apache сообщил браузеру, что перемещение считается постоянным. В отличие от «R» по умолчанию, «R = 301» также указывает браузеру отображать новый адрес в адресной строке.
Это один из наиболее распространенных методов перезаписи URL-адресов элементов, которые были перемещены на новый URL-адрес (например, он широко используется на этом сайте для перенаправления пользователей на новые URL-адреса сообщений при их изменении). 9(.*)$ http://www.addedbytes.com/$1 [L,R=301]
Приведенное выше правило перезаписи перенаправляет все запросы, независимо от того, зачем, на один и тот же URL-адрес «www.addedbytes.com». «. Без условия это правило создало бы цикл, в котором каждый запрос, соответствующий этому правилу, возвращался бы самому себе. Это правило предназначено только для перенаправления запросов, в которых отсутствует часть URL-адреса «www», и условие, предшествующее правилу, гарантирует, что это произойдет.
Условие действует аналогично правилу. Он начинается с «RewriteCond», чтобы сообщить mod_rewrite, что эта строка относится к условию. Далее следует то, что на самом деле должно быть протестировано, а затем шаблон для тестирования. Наконец, флаги в квадратных скобках, как и в RewriteRule.
Проверяемая строка (вторая часть условия) может быть самой разной. Вы можете проверить запрашиваемый домен, как в приведенном выше примере, или вы можете проверить используемый браузер, URL-адрес ссылки (обычно используемый для предотвращения хотлинкинга), IP-адрес пользователя или множество других вещей (см. раздел переменных» для описания того, как они работают).
Шаблон почти точно такой же, как и в RewriteRule, за несколькими небольшими исключениями. Шаблон не может быть интерпретирован как шаблон, если он начинается с определенных символов, как описано в следующем разделе «исключения». Это означает, что если вы хотите использовать шаблон регулярного выражения, начинающийся с <, > или дефиса, вы должны экранировать их с помощью обратной косой черты.
За условиями перезаписи могут, как и за правилами перезаписи, следовать флаги, а их всего два. «NC», как и в случае с правилами, указывает Apache обрабатывать условие как нечувствительное к регистру. Другой доступный флаг — «ИЛИ». Если вы хотите применить правило только в случае совпадения одного из двух условий, а не повторять правило, добавьте флаг «ИЛИ» к первому условию, и если одно из условий совпадает, будет применено следующее правило. Поведение по умолчанию, если правилу предшествует несколько условий, заключается в том, что оно применяется только в том случае, если все правила совпадают.
Исключения и особые случаи
Условия перезаписи можно проверить несколькими способами — их не нужно рассматривать как шаблоны регулярных выражений, хотя это наиболее распространенный способ их использования. Вот различные способы обработки условий перезаписи:
- <Шаблон (тестовая строка ниже шаблона)
- >Шаблон (тестовая строка больше шаблона)
- =Шаблон (тестовая строка равна шаблону)
- -d (является ли тестовая строка допустимым каталогом)
- -f (является ли тестовая строка допустимым файлом)
- -s (является ли тестовой строкой допустимым файлом размером больше нуля)
- -l (является ли тестовая строка символической ссылкой)
- -F (является ли тестовой строкой a действительный файл и доступный (через подзапрос))
- -U (является ли тестовая строка действительным URL-адресом и доступен (через подзапрос))
Переменные сервера
Переменные сервера — это набор элементов, которые вы можете протестировать при написании условий перезаписи . Это позволяет вам применять правила, основанные на всевозможных параметрах запроса, включая идентификаторы браузера, ссылочный URL или множество других строк. Переменные имеют следующий формат:
%{VARIABLE_NAME}
И «VARIABLE_NAME» можно заменить любым из следующих элементов:
- Заголовки HTTP
- HTTP_USER_AGENT
- HTTP_REFERER
- HTTP_COOKIE
- HTTP_FORWARDED
- HTTP_HOST
- HTTP_PROXY_CONNECTION
- HTTP_ACCEPT
- Переменные подключения
- REMOTE_ADDR
- REMOTE_HOST
- REMOTE_USER
- REMOTE_IDENT
- REQUEST_METHOD
- SCRIPT_FILENAME
- PATH_INFO
- QUERY_STRING
- AUTH_TYPE
- Серверные переменные 9 0036
- DOCUMENT_ROOT
- SERVER_ADMIN
- SERVER_NAME
- SERVER_ADDR
- SERVER_PORT
- SERVER_PROTOCOL
- SERVER_ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
- TIME_YEAR
- TIME_MON
- TIME_DAY
- TIME_HOUR
- TIME_MIN
- TIME_SEC
- TIME_WDAY
- TIME
- API_VERSION
- THE_REQUEST
- REQU EST_URI
- REQUEST_FILENAME
- IS_SUBREQ
Работа с несколькими правилами
Чем сложнее сайт, тем сложнее набор правил, регулирующих это может быть. Это может быть проблематично, когда дело доходит до разрешения конфликтов между правилами. Вы обнаружите, что эта проблема чаще всего возникает, когда вы добавляете новое правило в файл, и оно не работает. Что вы можете обнаружить, если само правило не виновато, так это то, что более раннее правило в файле соответствует URL-адресу, и поэтому URL-адрес не проверяется на соответствие новому правилу, которое вы только что добавили. 9([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ get_blog_post_by_title.php?category_name=$1&post_title=$2 [NC,L] # Обработка сообщений в блоге
В приведенном выше примере страницы продуктов сайта и страницы сообщений блога имеют идентичные шаблоны. Второе правило никогда не будет соответствовать URL-адресу, потому что все, что соответствует этому шаблону, уже соответствует первому правилу.
Есть несколько способов обойти это. Некоторые CMS (включая wordpress) справляются с этим, добавляя к URL-адресу дополнительную часть для обозначения типа запроса, например: 9([A-Za-z0-9-]+)/?$ get_archives_by_topic. php?topic_name=$1 [NC,L] # Получить архив по теме
mod_rewrite
Apache mod_rewrite входит в стандартную комплектацию большинства учетных записей хостинга Apache, так что если вы находитесь на виртуальном хостинге, вам вряд ли придется что-то делать. Если вы управляете своим собственным ящиком, то вам, скорее всего, просто нужно включить mod_rewrite. Если вы используете Apache1, вам нужно будет отредактировать файл httpd.conf и удалить начальный «#» из следующих строк:
#LoadModule rewrite_module modules/mod_rewrite.so
Если вы используете Apache2 в дистрибутиве на основе Debian, вам необходимо выполнить следующую команду и перезапустить Apache:
sudo a2enmod rewrite

ISAPI_Rewrite
ISAPI_Rewrite — это подключаемый модуль для перезаписи URL-адресов для IIS на основе mod_rewrite, который не является бесплатным. Он выполняет большую часть тех же функций, что и mod_rewrite, и есть форум ISAPI_Rewrite хорошего качества, где можно найти ответы на самые распространенные вопросы. Поскольку ISAPI_Rewrite работает с IIS, установка относительно проста — доступны инструкции по установке.
Правила ISAPI_Rewrite сохраняются в файле с именем httpd.ini. Ошибки по умолчанию попадают в файл с именем httpd.parse.errors.
Слеши в начале
Я много раз сталкивался с тем, что вводил слеши в системах перезаписи URL. Должны ли они использоваться в шаблоне или в разделе подстановки RewriteRule или использоваться в операторе RewriteCond — это постоянный источник разочарования для меня. Отчасти это может быть связано с тем, что я работаю с разными механизмами перезаписи URL-адресов, но я бы посоветовал быть осторожным с косой чертой в начале — если правило не работает, часто это хорошее место для начала поиска.