mod_rewrite включить (7)

Нет, mod_rewrite - это модуль Apache и не имеет ничего общего с PHP.

Чтобы активировать модуль, следующая строка в httpd.conf должна быть активной:

LoadModule rewrite_module modules/mod_rewrite.so

чтобы убедиться, что он уже активен, попробуйте поместить файл.htaccess в веб-каталог, содержащий строку

RewriteEngine on

если это работает, не выкидывая ошибку внутреннего внутреннего сервера 500, а файл.htaccess обрабатывается, выполняется переписывание URL-адресов.

Если я правильно понял, мне нужно добавить что-то в httpd.config чтобы включить mod_rewrite. Если это так, что мне нужно добавить в httpd.conf или apache.conf ? Пожалуйста, укажите ОС.

Нет, вам не нужно. mod_rewrite - это модуль Apache. Это не имеет никакого отношения к php.ini .

В моем случае проблема возникла даже после всех этих конфигураций (@Pekka упомянул об изменениях в файлах httpd.conf и.htaccess). Это было разрешено только после добавления

Order allow,deny Allow from all AllowOverride All

к конфигурации виртуального хоста в файле vhost

Изменить на 29/09/2017 (для Apache 2.4 <) См. Этот ответ

DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs" ServerName dropbox.local ErrorLog "logs/dropbox.local-error.log" CustomLog "logs/dropbox.local-access.log" combined # AllowOverride All # Deprecated # Order Allow,Deny # Deprecated # Allow from all # Deprecated # --New way of doing it Require all granted

Модуль rewrite_module встроен в сервер в большинстве случаев

Использовать.htaccess

Используйте генератор перезаписи мод по адресу http://www.generateit.net/mod-rewrite/

сетевые решения предлагают совет поместить php.ini в cgi-bin, чтобы включить mod_rewrite

Чтобы использовать mod_rewrite, вы можете ввести следующую команду в терминал:

$ su $ passwd ********** # a2enmod rewrite

Перезапустить apache2 после

# service apache2 restart # /etc/init.d/apache2 restart

# service apache2 restart

Просто fyi для людей, поддерживающих mod_rewrite на Debian с Apache2:

Чтобы проверить, включен ли mod_rewrite:

Ls /etc/apache2/mods-enabled | grep rewrite

Если это выдает rewrite.load тогда модуль включен. (Примечание: ваш путь к apache2 может не быть / etc /, хотя это, вероятно, будет.)

Чтобы включить mod_rewrite, если это еще не сделано :

A2enmod rewrite

Перезагрузите все файлы конфигурации apache.

Модуль Mod rewrite используется для преобразования URL на основе правил. В статье рассказывается, как включить поддержку модуля Mod rewrite в веб-сервере Apache в операционной системе Ubuntu.

Подключаем модуль Mod rewrite

Перейдите в каталог /etc/apache2/mods-available и убедитесь, что там есть файл rewrite.load отвечающий за загрузку модуля Mod rewrite. Для этого выполните в консоли следующие команды:

Cd /etc/apache2/mods-available ls

В списке файлов должен присутствовать файл с именем rewrite.load .

Теперь перейдем в каталог /etc/apache2/mods-enabled и создадим символьную ссылку на файл rewrite.load . Для этого выполните команды:

Cd /etc/apache2/mods-enabled sudo ln -s ../mods-available/rewrite.load rewrite.load

Изменяем настройки виртуального хоста

Далее нужно изменить настройки виртуального хоста, который должен использовать модуль Mod rewrite. Для этого нужно открыть файл настроек конкретного хоста. Для примера возьмем стандартный файл /etc/apache2/sites-available/default , который содержит настройки хоста с именем localhost. Выполните следующую команду, чтобы открыть файл в редакторе GEdit:

Sudo gedit /etc/apache2/sites-available/crocodilus

Найдите в файле секцию и измените в ней строку AllowOverride None на AllowOverride All . Должно получиться примерно так:

Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all

Перезапускаем Apache

Теперь осталось перезапустить веб-сервер Apache командой.

Н а этом уроке, мы научиться управлять перезаписью URL с помощью Apache 2 и модуля mod_rewrite . Этот модуль позволяет переписать URL – адреса в более чистой манере, переводя удобочитаемые пути в кодовые дружественных строки запроса или перенаправляют URL – адреса на основе дополнительных условий.

Это руководство разделено на две части. Первая устанавливает пример веб-сайта и показывает простой пример перезаписи. Вторая часть содержит еще два углубленных примера, часто используемых правил перезаписи.

Предпосылки

Следуя этому руководству, вам потребуется:

  • Один сервер Debian 8 установленный с первоначальной настройкой сервера.
  • Apache 2, установленный на сервере, следуя статьи .

Шаг 1 – Включение mod_rewrite

Во- первых, нам нужно активировать mod_rewrite . Он доступен, но не включен с чистой установкой Apache 2.

Sudo a2enmod rewrite

Он активирует модуль или предупреждает вас о том, что модуль уже включен. Чтобы изменения вступили в силу, перезапустите Apache.

mod_rewrite теперь полностью включен. На следующем шаге мы создадим файл.htaccess , который мы будем использовать, чтобы определить правила перезаписи для редиректа.

Шаг 2 – Настройка.htaccess

Файл.htaccess позволяет изменять наши правила перезаписи без доступа к файлам конфигурации сервера. По этой причине, .htaccess имеет решающее значение для безопасности вашего веб – приложения. Период, который предшествует имени файла гарантирует, что файл скрыт.

Примечание

Любые правила, которые вы будете помещать в файл.htaccess можно также поместить непосредственно в файлы конфигурации сервера. На самом деле, официальная документация Apache рекомендует использовать файлы конфигурации сервера, а не.htaccess потому, что Apache обрабатывает их быстрее.

Тем не менее, в этом простом примере, увеличение производительности будет незначительным. Кроме того, устанавливая правила.htaccess удобно, особенно с нескольких веб – сайтами на одном сервере. Она не требует перезагрузки сервера, чтобы изменения вступили в силу, и это не требует привилегий суперпользователя для редактирования этих правил, что упрощает техническое обслуживание и внесение изменений и возможные с непривилегированных аккаунтов. Некоторые популярные программы с открытым исходным кодом, такие как и Joomla, часто полагается на файл.htaccess в программном обеспечении, чтобы изменять и создавать дополнительные правила по требованию.

Нам нужно будет установить и обеспечить еще несколько настроек, прежде чем мы сможем начать.

По умолчанию Apache запрещает использование файла.htaccess для применения правил перезаписи, поэтому сначала вам нужно разрешить изменения в файл. Открыть файл конфигурации по умолчанию в Apache, используя nano или ваш любимый текстовый редактор.

Sudo nano /etc/apache2/sites-available/000-default.conf

Внутри этого файла вы найдете блок , начиная с первой строки. Внутри этого блока, добавьте следующий новый блок, чтобы ваш файл конфигурации выглядит следующим образом. Убедитесь, что все блоки правильно с отступом.

/etc/apache2/sites-available/000-default.conf

Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted . . .

Сохраните и закройте файл. Чтобы изменения вступили в силу, перезапустите Apache.

Sudo systemctl restart apache2

Теперь создайте файл.htaccess в корневой веб директории.

Добавьте эту строку в верхней части нового файла, чтобы активировать перезапись.

/var/www/html/.htaccess

RewriteEngine on

Сохраните файл и выйдите.

Теперь у вас есть оперативный файл.htaccess , который можно использовать для управления правилами маршрутизации вашего веб – приложения. На следующем этапе мы создадим образцы файлов сайта, которые мы будем использовать, чтобы продемонстрировать правила перезаписи.

Шаг 3 – Настройка перезаписи URL

Здесь мы установим базовую перезапись URL, которая преобразует URL – адреса в реальные пути к коду. В частности, мы будем разрешать пользователям доступ. http://your_server_ip /about

Начнем с создания файла с именем about.html в корневой директории веб.

Sudo nano /var/www/html/about.html

Скопируйте следующий HTML-код в файл, а затем сохраните и закройте его.

/var/www/html/about.html

О нас

О нас

Вы можете получить доступ к странице http://your_server_ip/about.html, но обратите внимание, что если вы попытаетесь получить доступ к http://your_server_ip/about, вы увидите ошибку 404 Not Found . Но чтобы пользователи получили доступ к странице с помощью about вместо того, чтобы, переписать правила позволит эта самая функциональность.

RewriteRules соблюдает следующий формат:

Общая структура RewriteRule

RewriteRule pattern substitution

  • RewriteRule определяет директиву.
  • pattern является регулярное выражение, которое соответствует желаемой строки из URL, типы просмотра в браузере.
  • substitution это путь к реальному URL, то есть путь файловых серверов Apache.
  • flags необязательные параметры, которые можно изменять, как работает правило.

Откройте файл.htaccess .

Sudo nano /var/www/html/.htaccess

После первой строки, добавьте RewriteRule отмеченный красным цветом, и сохраните файл.

/var/www/html/.htaccess

RewriteEngine on RewriteRule ^about$ about.html

В этом случае, ^about$ это шаблон, about.html это замена, и является флагом. Наш пример использует несколько символов со специальным значением:

  • ^ указывает на начало URL, после your_server_ip / .
  • $ указывает на конец URL.
  • about соответствует строке “about”.
  • about.html является фактическим файл, который обращается к пользователю.
  • является флагом, который делает случай правила нечувствительным.

Теперь, вы должны иметь возможность доступа к http://your_server_ip/about в вашем браузере. На самом деле, с правилом показанным выше, следующие URL – адреса будут указывать about.html:

  • http://your_server_ip /about , из-за определения правила.
  • http://your_server_ip /About , Так как правило не чувствительно к регистру.
  • http://your_server_ip /about.html , так как оригинальное собственное имя файла всегда будет работать.

Ниже не будет:

  • http://your_server_ip /about/ , потому что правило четко указано, что не может быть ничего после about помощью $ символа.
  • http://your_server_ip /contact , потому что она не будет соответствовать строке about в правиле.

Теперь у вас есть оперативный файл.htaccess с простым правилом, вы можете изменить и расширить для ваших потребностей. В следующих разделах мы покажем два дополнительных примера наиболее часто используемых директив.

Пример 1 – Упрощение строки запросов с RewriteRule

Веб – приложения часто используют строки запроса , которые добавляются к URL – адресу, используя знак вопроса (?) после адреса. Отдельные параметры разделяются с помощью амперсанда (&). Строки запроса могут быть использованы для передачи дополнительных данных между отдельными страницами приложения.

Например, страницы результатов поиска написанные на PHP, могут использовать URL, как http://example.ru/results.php?item=shirt&author=andreyex . В этом примере два дополнительных параметра передают воображаемый result.php сценария приложения: item со значением shirt и author со значением andreyex . Приложение может использовать информацию строки запроса, чтобы построить правильную страницу для посетителя.

Правила перезаписи Apache часто используются для упрощения таких длинных и неприглядных ссылок как выше в дружественные URL – адреса , которые легче вводить и интерпретировать визуально. В этом примере, мы хотели бы, упростить ссылку выше, чтобы сделать http://example.ru/shirt/andreyex . shirt и значения параметров author и andreyex к прежнему адресу, но без строки запроса и имени сценария.

Вот одно правило для реализации этого:

Простой пример

RewriteRule ^shirt/andreyex$ results.php?item=shirt&author=andreyex

shirt/andreyex явно сопоставляются в запрашиваемом адресе и Apache указал запустить вместо этого results.php?item=shirt&author=andreyex .

флаги обычно используются в правила[ перезаписи. Они говорят Apache, чтобы добавить любые дополнительные строки запроса к обслуживаемому URL. Без этого, дополнительная строка запроса будет отбрасываются. http://example.ru/shirt/andreyex?page=2 results.php?item=shirt&author=andreyex&page=2

Хотя этот метод позволяет достичь желаемого эффекта, как имя элемента и author жестко закодированы в правила. Это означает, что правило не будет работать для любыми другими предметами, например pants , или author, как destroyer .

Для того, чтобы сделать правило более общо, мы можем использовать регулярные выражения, чтобы соответствовать части исходного адреса и использовать те части в схеме замещения. Модифицированное правило будет выглядеть следующим образом:

Простой пример

RewriteRule ^(+)/(andreyex|destroyer|fall|spring) results.php?item=$1&author=$2

Первое регулярное выражение группы в скобках соответствует строке, содержащей буквенно-цифровые символы и цифры, как shirt или pants и сохраняет совпавший фрагмент в качестве переменной $1 . Вторая группа выражений в скобках соответствует точно andreyex , destroyer , fall или spring , и так же сохраняет совпавший фрагмент как $2 .

Согласованные фрагменты затем в результирующий URL в переменные item и author вместо жёстко shirt и andreyex , которые мы использовали раньше.

Выше будет преобразовывать, например, http://example.ru/pants/andreyex в http://example.ru/results.php?item=pants&author=andreyex . Этот пример также на будущее, позволяя нескольким элементам и author правильно переписать с использованием единого правила.

Пример 2 – Добавление условия с помощью логики, используя RewriteConds

Правила перезаписи не обязательно всегда вычисляются один за другим без каких – либо ограничений. Директива RewriteCond позволяет нам добавлять условия для наших правил перезаписи, чтобы контролировать, когда правила будут обработаны. RewriteConds соблюдает следующий формат:

Общая структура RewriteCond

RewriteCond TestString Condition

  • RewriteCond определяет директиву RewriteCond .
  • TestString это тестируемая строка.
  • Condition это шаблон или условие, чтобы соответствовать.
  • Flags необязательные параметры, которые могут изменить правила условий и оценки.

Если имеет RewriteCond значение истинно, то RewriteRule сразу после будет рассмотрен. Если это не будет, то правило будет отброшено. Многократная RewriteCond может использоваться один за другим, и с поведением по умолчанию, все они должны оценить, верно и в следующем правиле для рассмотрения.

В качестве примера, давайте предположим, что вы хотели бы перенаправить все запросы на несуществующие файлы и каталоги на вашем сайте обратно на главную страницу вместо того чтобы показывать стандартную страницу ошибку 404 Not Found . Это может быть достигнуто с следующими условиями правил:

Перенаправить все запросы на несуществующие файлы и каталоги на главную страницу

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /

С учетом указанных выше:

  • %{REQUEST_FILENAME} это строка для проверки. В этом случае, запрашиваемое имя файла, которое является переменной системой, доступной для каждого запроса.
  • -f встроенное в условие, которое проверяет, существует ли запрашиваемое имя на диске, и является ли файлом. ! - Является оператором отрицания. В сочетании!-f оценивается как истина, только если указанное имя не существует или не является файлом.
  • Аналогичным образом, !-d оценивается как истина, только если указанное имя не существует или не является каталогом.

RewriteRule На последней строке вступит в силу только для запросов на несуществующие файлы и каталоги. RewriteRule Сама по себе очень проста и перенаправляет каждый запрос на / корень сайта.

Вывод

mod_rewrite полезный модуль Apache, который может быть эффективно использован для обеспечения удобочитаемых URL. На этом уроке вы узнали, как использовать директиву RewriteRule для перенаправления URL – адресов, в том числе с строки запроса. Вы также узнали перенаправление URL – адреса с помощью директивы RewriteCond .

Иногда люди сталкиваются с проблемой — сервер apache не читает ваш файл.htaccess или apache не переписывает URL, а мы используем правильные правила перезаписи в конфигурационных файлах. Это происходит из-за того, что модуль rewrite не включен в apache. Т.к модуль mod_rewrite не включен по умолчанию на сервер, поэтому для использования rewrite, нужно вручную включить mode_rewrite. В моей статье «Включить модуль mod_rewrite для Apache в Debian/Ubuntu» я расскажу как я это могу сделать.

1. Включение модуля mod_rewrite в Apache2

Для этого, я использую команду «a2enmod», чтобы включить любые модули в веб-сервере Apache 2. Так что, используйте следующую команду чтобы включить mod_rewrite модуль для apache:

$ sudo a2enmod rewrite

2. Активировать ReWrite в вирутальном хосте

После включения модуля ReWrite для Apache необходимо добавить «AllowOverride All» в вашем файле конфигурации для виртуального хоста. Этот параметр также может быть включен в глобальном масштабе, путем редактирования основного файла конфигурации apache:

Options Indexes FollowSymLinks AllowOverride All

3. Перезапуск конфигурации Apache2

После включения модуля mod_rewrite для Apache нужно перезагрузить сервер Apache2:

# service apache2 restart

Тема «Включить модуль mod_rewrite для Apache в Debian/Ubuntu» завершена.

Данное руководство поможет настроить перезапись URL-адресов на Apache2 с помощью модуля mod_rewrite. Этот инструмент позволяет переписывать URL-адреса и создавать чистые ссылки, преобразовывая сложные пути в понятные и читабельные ссылки.

Требования

  • Сервер Ubuntu 14.04.
  • Пользователь с доступом к sudo (подробности можно найти в руководстве ).

1: Установка Apache

Apache можно установить с помощью пакетного менеджера apt-get.

Сначала нужно обновить индекс пакетов:

sudo apt-get update

Apache – это популярный модульный веб-сервер (то есть, он позволяет настраивать функции путём включения и отключения модулей). Чтобы установить Apache 2, введите:

sudo apt-get install apache2

Сервер Apache успешно установлен.

Теперь нужно сосредоточить внимание на модулях.

2: Модуль mod_rewrite

Чтобы включить mod_rewrite, введите:

sudo a2enmod rewrite

Команда включит модуль и сообщит вам о том, что модуль работает. Чтобы обновить настройки веб-сервера, перезапустите его:

sudo service apache2 restart

3: Создание файла.htaccess

Теперь нужно написать файл.htaccess, который будет управлять перезаписью.

Файл.htaccess определяет индивидуальные директивы Apache для каждого отдельного домена.

Примечание : В Linux с символа точки начинаются имена скрытых файлов.

Сначала нужно включить поддержку файлов.htaccess. Для этого отредактируйте директиву AllowOverride в конфигурационном файле Apache. Откройте файл:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Найдите блок и добавьте в него такой блок:

etc/apache2/sites-available/default

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

Теперь конфигурационный файл веб-сервера должен выглядеть так:

/etc/apache2/sites-available/default


. . .

. . .

Чтобы обновить настройки, перезапустите Apache.

sudo service apache2 restart

Создайте файл.htaccess:

Добавьте в начало нового файла такую строку, чтобы активировать RewriteEngine:

RewriteEngine on

Сохраните и закройте файл. Так Apache сможет обрабатывать правила перезаписи.

Другие пользователи должны иметь только право на чтение.htaccess. Измените права доступа к файлу:

sudo chmod 644 /var/www/html/.htaccess

4: Настройка перезаписи

Данный раздел покажет, как настроить базовую перезапись URL-адресов. В качестве примера используется ссылка example.com/about.

Создайте файл about.html:

sudo nano /var/www/html/about.html

Скопируйте следующий код и поместите его в файл:



About Us


About Us



Обратите внимание: доступ можно получить только к about.html. Если вы введёте ссылку ip_адрес_сервера /about, вы получите ошибку 404 Not Found. Создайте правило перезаписи, чтобы исправить это.

Откройте файл.htaccess:

sudo nano /var/www/html/.htaccess

Добавьте в него следующую строку:

RewriteRule ^about$ about.html

Теперь файл содержит такие настройки:

RewriteEngine on
RewriteRule ^about$ about.html

Теперь браузер сможет обслуживать страницу example.com/about.

На примере этого правила можно рассмотреть общий синтаксис перезаписи.

  • ^about$ — шаблон, с которым совпадает URL, и который пользователи вводят в браузере. В данном примере используются метасимволы, благодаря которым можно чётко обозначить местонахождение шаблона: символ ^ определяет начало шаблона, а $ — конец.
  • about.html: исходный путь к странице, по которому обслуживается файл about.html.
  • : флаг, который отключает чувствительность URL-адреса к регистру.

Согласно этому правилу, доступ к странице можно получить по следующим ссылкам:

example.com/about
example.com/About
example.com/about.html

example.com/about/
example.com/contact

Общие шаблоны

Итак, теперь вы знаете основы написания правил перезаписи. Рассмотрим два дополнительных примера.

Примечание : Для тестирования можно создать пару дополнительных файлов.

Пример 1: Упрощение строки запросов с помощью RewriteRule

Правила RewriteRule имеют такой формат:

RewriteRule pattern substitution

  • RewriteRule: директива.
  • pattern: регулярное выражение, которое задаёт шаблон поиска строки.
  • substitution: целевой URL-адрес
  • flags: опциональные параметры, которые изменяют поведение правила.

Приложения часто используют строки запросов. Эти строки находятся в URL-адресе, начиная с вопросительного знака (?) и заканчивая амперсандом (&). Обрабатывая правила перезаписи, Apache игнорирует эти два символа. К примеру, URL страницы результатов поиска, написанной на PHP, может выглядеть следующим образом:

http://example.com/results.php?item=shirt&season=summer

Конечно, пользователям будет гораздо удобнее, если ссылка будет чистой:

http://example.com/shirt/summer

Этого можно добиться двумя способами: с помощью простой замены или группирования параметров.

1: Простая замена

Создайте правило, выполняющее простую замену, чтобы ссылка стала чистой:

RewriteRule ^shirt/summer$ results.php?item=shirt&season=summer

Это правило вместо results.php?item=shirt&season=summer будет использовать shirt/summer.

2: Сопоставление и группирование

В некоторых ситуациях нужно оптимизировать строку запросов (к примеру, чтобы она включала все сезоны). Для этого нужно:

  • Задать набор параметров, разделив их с помощью символа вертикальной черты | (логический оператор OR).
  • Сгруппировать все заданные параметры с помощью круглых скобок (), а затем сослаться на группу с помощью переменной $1 (где 1 – номер группы параметров).

В результате получится такое правило:

RewriteRule ^shirt/(summer|winter|fall|spring) results.php?item=shirt&season=$1

Это правило добавляет в URL новый сегмент.

3: Совпадение наборов символов

Чтобы пользователь мог открыть чистый URL любого раздела сайта (не только / shirt), нужно:

  • Написать регулярное выражение, совпадающее со всеми алфавитно-цифровыми символами. В квадратных скобках указывается поисковой шаблон (в данном случае он включает все символы), а символ + указывет что каждый символ в шаблоне может повторяться неограниченное количество раз.
  • Сгруппировать этот набор символов и присвоить ему $2.

RewriteRule ^(+)/(summer|winter|fall|spring) results.php?item=$1&season=$2

http://example.com/results.php?item=pants&season=summer

http://example.com/pants/summer

4: Дополнительная строка запроса

Это позволит вам устранить ряд потенциальных проблем. Попробуйте преобразовать:

http://example.com/pants/summer?page=2

http://example.com/results.php?item=pants&season=summer&page=2

При текущих настройках вы не сможете перейти на page=2. Это можно исправить с помощью флага QSA, который позволяет комбинировать строки запросов. Отредактируйте правило следующим образом:

RewriteRule ^(+)/(summer|winter|fall|spring) results.php?item=$1&season=$2

Пример 2: Условия RewriteCond

Теперь рассмотрим подробнее директиву RewriteCond. RewriteCond имеет такой формат:

RewriteCond TestString Condition

  • RewriteCond: директива.
  • TestString: строка для сравнения.
  • Condition: шаблон, с которым нужно сравнить строку.
  • Flags: дополнительные параметры.

Если условие перезаписи RewriteCond истинно, Apache обработает следующее за ним правило RewriteRule.

1: Страница по умолчанию

Ранее вы видели, что в случае если запрашиваемой страницы не существует, Apache возвращает страницу ошибки 404 Not Found. Однако вместо этого Apache может перенаправлять все подобные запросы на домашнюю страницу. Добавьте следующее условие, чтобы убедиться, что запрашиваемый файл существует:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^admin/(.*)$ /admin/home

Рассмотрим вышеприведённое правило по частям:

  • %{REQUEST_FILENAME} проверяет запрашиваемую строку.
  • !-f: оператор! (not) указывает, что если запрашиваемого файла не существует, веб-сервер должен выполнить следующее правило переадресации.
  • RewriteRule перенаправляет запрос на /admin/home.

Также можно задать ErrorDocument, на который будут отправляться все запросы на несуществующие страницы. Создайте правило ErrorDocument и перенаправьте все ошибки 404 на страницу error.html:

ErrorDocument 404 /error.html

2: Ограничение доступа по IP

RewriteCond позволяет ограничивать доступ к сайту по IP-адресу.

К примеру, это правило заблокирует весь трафик, кроме 12.34.56.789:

RewriteCond %{REMOTE_ADDR} !^(12\.34\.56\.789)$
RewriteRule (.*) -


Close