Архив рубрики: Публикации

Онлайн обучение ИТ http://курсы-по-ит.рф

Добрый день!

Сегодня команда Itsecforu хочет познакомить и посоветовать Вам сайт посвященный обучению в области ИТ – http://курсы-по-ит.рф .

Создателем является Дмитрий Скоромнов, имеющий богатый опыт в области сетевых технологий и системного администрирования, а также огромное количество сертификатов (в том числе и международных) от различных вендоров.

Онлайн курсы разделены на два основных раздела:

1. Университет MikroTik. Вы сможете научится работать с этим оборудованием

2. Школа системного администратора.

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

Стоит отметить символическую стоимость, которую автор просит за обучение с последующей выдачей сертификата, например для курса “Основы сетевых технологий” – она составляет всего 490 р. Сам курс написан очень здорово – простым языком, с доступными примерами. В течение курса автор постоянно возвращается к уже пройденному материалу, что позволяет закрепить полученные знания, а также умело расставляет акценты на тех вещах которые необходимо подчеркнуть слушателям в первую очередь!

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

 



2017-02-01T14:42:16
Медиа

Установка MySQL CentOS 7

MySQL — это одна из самых популярных систем управления базами данных, используемых как на производстве, так и для хранения данных веб-сайтов и приложений. Однако после перехода MySQL в собственность Oracle, вместо нее везде по умолчанию используется MariaDB. Это достойная замена, если вам нужна только базовая функциональность, но если вы хотите получить все тонкости и возможности MySQL, вам нужна именно версия от Oracle.

Но из официальных репозиториев MySQL была удалена. Поэтому вам придется искать другие источники. В этой статье мы рассмотрим как выполняется установка MySQL CentOS 7. Причем в версии от Oracle, а не MariaDB.

Подготовка системы

Перед тем как перейти к установке MySQL в CentOS нужно выполнить несколько настроек и проверить все ли правильно в вашей системе. Сначала убедитесь, что у вас установлено имя хоста. Для этого выполните команду:

hostname

$ hostname -f

Первая команда покажет короткое имя хоста, вторая выведет полное имя FQDN. Если все правильно, осталось обновить систему до самой последней версии:

sudo yum update

Установка MySQL в CentOS 7

Как я уже сказал, в официальных репозиториях пакета нет, поэтому вам придется добавить репозиторий сообщества. Вам нужно открыть сайт repo.mysql.com и скачать самую последнюю версию файла репозитория. Например, на данный момент это mysql57-community-release-el7.rpm.

Для установки этой версии вы можете использовать команду:

wget http://repo.mysql.com/mysql57-community-release-el7.rpm

sudo rpm -ivh mysql57-community-release-el7.rpm

Дальше обновите список репозиториев:

sudo yum update

Теперь вам осталось осталась установка mysql centos 7 и запуск самой службы:

sudo yum install mysql-server

$ sudo systemctl start mysqld

Настройка MySQL CentOS 7

По умолчанию MySQL будет слушать локальный хост 127.0.0.1. Если вы хотите, чтобы сервер был доступен из интернета, необходимо изменить несколько настроек в файле /etc/my.cnf. Однако, не рекомендуется делать сервер баз данных доступным через интернет. Чтобы указать внешний ip адрес, который нужно прослушивать используется опция bind_address:

sudo vi /etc/my.cnf

bind_address = 192.168.1.58

Также в установке параметров по умолчанию есть некоторые настройки, которые могут быть потенциально не безопасными при доступе из внешней сети. Для этого чтобы их устранить запустите скрипт mysql_secure_installation:

mysql_secure_installation

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

grep 'temporary password' /var/log/mysqld.log

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

Затем укажите что пароль менять не нужно. Отключите анонимных пользователей. Запретите удаленный вход от имени пользователя root:

Удалите тестовые таблицы:

И обновите таблицы привелегий:

Не рекомендуется постоянно работать с базами данных от имени пользователя root. Поэтому нужно создать обычного пользователя. Для этого сначала войдите в консоль управления с правами root:

 mysql -u root -p

Утилита, запросит пароль, введите пароль root, который задали на предыдущем этапе, дальше вы сможете выполнять команды mysql:

mysql>

Давайте создадим пользователя dbuser для базы данных dbase, с паролем password. Вам нужно заменить эти значения на свои. Сначала создаем базу данных:

mysql> create database dbase;

mysql> create user 'dbuser'@'localhost' identified by 'password';

mysql> grant all on dbase.* to dbuser' identified by 'password';

Дальше создадим первую таблицу в нашей новой базе данных, но перед этим войдем от имени  только что созданного пользователя:

mysql -u testuser -p

Переключите на новую базу данных:

mysql> use dbase

Затем создайте таблицу:

create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);

Готово. Теперь вы знаете как выполняется установка MySQL CentOS 7. Давайте еще рассмотрим как сбросить пароль в MySQL.

Сброс пароля пользователя root в MySQL

Иногда может случиться что вы забудете пароль пользователя root. Его можно очень просто сбросить. Сначала остановите запущенный экземпляр программы:

sudo systemctl stop mysqld

Затем запустите сервис в безопасном режиме, для этого нужно установить специальную опцию запуска:

systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

В этом режиме программа не будет запрашивать пароль для подключения. Подключитесь от имени суперпользователя и измените пароль:

mysql -u root

mysql> use mysql;

mysql> update user SET PASSWORD=PASSWORD("пароль") WHERE USER='root';

mysql> flush privileges;

Затем удалите эту переменную:

sudo systemctl unset-environment MYSQLD_OPTS

Осталось снова запустить сервер в обычном режиме:

sudo systemctl start mysqld

Улучшение производительности mysql

Настройка mysql по умолчанию не всегда оптимальна. Учитывая ваши особенности использования баз данных, можно улучшить ее производительность. Скрипт MySQL Tuner написанный на Perl и предоставляет рекомендации по настройке MySQL в зависимости от вашей нагрузки. Перед тем как запускать скрипт, дайте серверу поработать не менее чем 24 часа. Чем дольше будет время работы, тем точнее инструкции.

Скачайте скрипт:

wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl

Затем запустите:

perl ./mysqltuner.pl

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

Удаление mysql

Если вы хотите удалить MySQL CentOS 7, достаточно выполнить такую команду:

sudo yum remove mysql-server

Выводы

В этой статье мы рассмотрели как установить mysql centos 7. Теперь вы можете установить эту программу на своем сервере или домашнем компьютере. Также мы поговорили как выполняется базовая настройка mysql centos 7, поэтому теперь вы сможете получить полностью рабочую систему. Если у вас остались вопросы, спрашивайте в комментариях!



2017-02-01T13:25:57
Сервер

Первоначальная настройка сервера Debian 8

При создании нового сервера Debian 8, есть несколько шагов настройки, которые необходимо принимать на раннем этапе в рамках базовой установки. Это позволит повысить безопасность и удобство использования вашего сервера, и даст вам прочную основу для дальнейших действий.

Шаг первый — Войти как root

Для того, чтобы войти на свой сервер, вам нужно знать общественный IP — адрес сервера и пароль для учетной записи пользователя «root». Если вы еще не вошли на свой сервер, вы можете следовать учебнику как подключиться к серверу с помощью SSH.

Если вы еще не подключены к серверу, идти вперед и войдите в систему как пользователь root, используя следующую команду (замените выделенное слово на IP адрес вашего сервера):

ssh root@SERVER_IP_ADDRESS

 

Завершив процесс входа в систему, приняв предупреждение о подлинности хоста, если он появится, то предоставление корневой аутентификации (пароль или ключ). Если вход ваш первый раз на сервер, с помощью пароля, вам также будет предложено изменить пароль.

О root

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

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

Шаг второй — создание нового пользователя

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

В этом примере создается новый пользователь с именем «demo», но вы должны заменить его на имя пользователя, который вам нравится:

adduser demo

 

Вам будет предложено несколько вопросов, начиная с пароля учетной записи.

Введите надежный пароль и, при необходимости, заполните дополнительную информацию, если вы хотите. Это не требуется, и вы можете просто нажать «ENTER» в любой области, которую вы хотите пропустить.

Шаг третий — суперпользователь

Теперь мы имеем новую учетную запись пользователя с регулярными привилегиями учетной записи. Тем не менее, мы можем иногда выполнять административные задачи.

Чтобы избежать необходимости выйти из нашего обычного пользователя и снова войти в систему в качестве корневой учетной записи, мы можем установить пользователя, известного как «супер — пользователь» или корневые привилегии для нашей обычной учетной записи. Это позволит нашему обычному пользователю выполнять команды с правами администратора, поставив слово sudo перед каждой командой.

Установка Sudo

Debian 8 не поставляется с установленным sudo, так что давайте установить его с помощью apt-get.

Во-первых, обновим индекс пакетов:

apt-get update

 

Затем используйте эту команду, чтобы установить sudo:

apt-get install sudo

 

Теперь вы можете использовать команды sudo и visudo.

О SUDO привилегиях

Чтобы добавить эти привилегии к нашему новому пользователю, нам нужно добавить нового пользователя в группу «sudo». По умолчанию в Debian 8, пользователи, принадлежащие к группе «sudo» разрешено использовать команду sudo.

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

usermod -a -G sudo demo

 

Теперь ваш пользователь может запускать команды с пользовательскими привилегиями!

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

Генерация пары ключей

Если у вас еще нет пары ключей SSH, который состоит из открытого и секретного ключа, необходимо сгенерировать. Если у вас уже есть ключ, который вы хотите использовать, перейдите к шагу скопировать открытый ключ.

Для создания новой пары ключей, введите следующую команду в терминале вашей локальной машине (то есть вашего компьютера):

ssh-keygen

 

Предположим, что ваш локальный пользователь называется «localuser», вы увидите вывод, который выглядит следующим образом:

ssh-keygen output

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

Вернуться, принять это имя файла и путь к нему (или введите новое имя).

Далее, вам будет предложено ввести ключевую фразу, чтобы обеспечить ключ. Вы можете либо ввести ключевую фразу или оставьте пустым парольную фразу.

Примечание
Если оставить ключевую фразу пустым, вы будете иметь возможность использовать секретный ключ для аутентификации без ввода пароля. Если ввести ключевую фразу, вам потребуется как закрытый ключ и ключевая фраза, чтобы войти. Защита ключей с фразами является более безопасным, но оба метода имеют свое применение и более безопасны, чем базовая аутентификация пароля.

Это создает закрытый ключ id_rsa и открытый ключ, id_rsa.pub, в .ssh домашней директории localuser’s. Помните, что закрытый ключ не должен использоваться совместно с кем — либо, кто не должен иметь доступ к серверам!

Скопируйте открытый ключ

После генерации пары ключей SSH, вы хотите скопировать свой открытый ключ на новый сервер. Мы рассмотрим два простых способа сделать это.

Вариант 1: Использование ssh-copy-id

Если ваша локальная машина имеет установленный скрипт ssh-copy-id, вы можете использовать его, чтобы установить свой открытый ключ любому пользователю, который вы получили в учетных данных для входа.

Запустите скрипт ssh-copy-id, указав пользователя и IP — адрес сервера, на который вы хотите установить ключ, так:

ssh-copy-id demo@SERVER_IP_ADDRESS

 

После предоставления пароля в командной строке, ваш открытый ключ будет добавлен к файлу удаленного пользователя .ssh/authorized_keys. Соответствующий секретный ключ теперь может быть использован для входа на сервер.

Вариант 2: Вручную установить ключ

Предполагая, что вы сгенерировали пару ключей SSH, используя предыдущий шаг, используйте следующую команду в терминале вашей локальной машине , чтобы напечатать ваш открытый ключ ( id_rsa.pub):

cat ~/.ssh/id_rsa.pub

 

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

id_rsa.pub contents

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local

 

Выберите открытый ключ, и скопируйте его в буфер обмена.

Добавить открытый ключ для новых удаленных пользователей

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

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

su - demo

 

Теперь вы будете в домашнем каталоге вашего нового пользователя.

Создайте новую папку с именем .ssh и ограничьте права доступа со следующими командами:

    mkdir .ssh

    chmod 700 .ssh


 

Теперь откройте файл .ssh под названием authorized_keys с помощью текстового редактора. Мы будем использовать nano для редактирования файла:

nano .ssh/authorized_keys

 

Теперь вставьте свой открытый ключ (который должен быть в вашем буфере обмена), вставив его в редактор.

Нажмите , CTRL-X чтобы выйти из файла, а затем чтобы сохранить изменения, которые вы сделали, и , ENTER чтобы подтвердить имя файла.

Теперь ограничить права доступа к файлу authorized_keys с помощью следующей команды:

chmod 600 .ssh/authorized_keys

 

Введите эту команду один раз, чтобы вернуться к пользователю root:

exit

 

Теперь вы можете войти через SSH в качестве нового пользователя, с помощью закрытого ключа в качестве проверки подлинности.

Шаг пятый — Настройка SSH

Теперь, когда у нас есть наш новый аккаунт, мы можем обеспечить наш сервер немного изменяя его конфигурацию SSH — демоном (программа, которая позволяет нам войти в систему удаленно) , чтобы запретить удаленный доступ по SSH к корневой учетной записи.

Начните с открытия файла конфигурации с помощью текстового редактора в качестве root:

nano /etc/ssh/sshd_config

 

Здесь мы имеем возможность отключить корневой вход через SSH. Это, как правило, более безопасный параметр, так как теперь мы можем получить доступ к нашему серверу через нашей обычной учетной записи пользователя и повышения привилегий при необходимости.

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

/etc/ssh/sshd_config (до)

#PermitRootLogin yes


Вы можете изменить эту строку на «no», если вы хотите отключить корневой логин:

/etc/ssh/sshd_config (после)

PermitRootLogin no


Отключение удаленного корневого входа настоятельно рекомендуется на каждом сервере!

Когда вы закончите внесения изменений, сохраните и закройте файл, используя метод, который мы использовали ранее ( CTRL-X, а затем Y, потом ENTER).

Перезагрузить SSH

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

Введите эту функцию, чтобы перезапустить SSH:

systemctl restart ssh

 

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

Открыть новое окно терминала. В новом окне, мы должны начать новое соединение с нашим сервером. На этот раз, вместо того чтобы использовать корневую учетную запись, мы хотим использовать новую учетную запись, которую мы создали.

ssh demo@SERVER_IP_ADDRESS

 

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

Помните, что если вам нужно выполнить команду с привилегиями суперпользователя, введите «sudo» перед ним, как в примере:

sudo command_to_run

 

Если все хорошо, вы можете выйти из ваших сессий, набрав:

exit

 

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



2017-01-31T05:50:20
Настройка Debian

Как переписывать URL-адрес с помощью mod_rewrite для Apache на Debian 8

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

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

Предпосылки

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

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

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

sudo a2enmod rewrite

 

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

sudo systemctl restart apache2

 

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

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

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

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

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

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

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

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

 

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

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

<VirtualHost *:80>

    <Directory /var/www/html>

        Options Indexes FollowSymLinks MultiViews

        AllowOverride All

        Require all granted

    </Directory>



    . . .

</VirtualHost>

 

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

sudo systemctl restart apache2

 

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

sudo nano /var/www/html/.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

<html>

    <head>

        <title>О нас</title>

    </head>

    <body>

        <h1>О нас</h1>

    </body>

</html>

 

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

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

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

RewriteRule pattern substitution [flags]


  • 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 [NC]

 

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

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

Теперь, вы должны иметь возможность доступа к 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 [QSA]

 

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

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

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

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

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

RewriteRule ^([A-Za-z0-9]+)/(andreyex|destroyer|fall|spring) results.php?item=$1&author=$2 [QSA]

 

Первое регулярное выражение группы в скобках соответствует строке, содержащей буквенно-цифровые символы и цифры, как 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 [Flags]


  • 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.

Если вы хотите узнать больше о mod_rewrite, посмотрите на введение в mod_rewrite Apache и официальной документации Apache для mod_rewrite.

Как переписывать URL-адрес с помощью mod_rewrite для Apache на Debian 8



2017-01-30T20:35:43
Настройка Debian

Как зайти в настройки роутера ZyXEL Keenetic

Пользователи, которые впервые приобрели роутер, часто не могут разобраться, как подключить его к компьютеру и как начать с ним работать. Данная статья должна помочь именно в такой ситуации. Здесь вы узнаете, как подключить роутер ZyXEL Keenetic к компьютеру и как зайти в его настройки. Статья будет актуальной для любого роутера ZyXEL, включая ZyXEL Keenetic Omni 2, Giga 2 и Lite 2. Читать

Простая обрезка изображения с помощью cropper.js и PHP

Привет друзья. Сегодня мы хотим поделиться, как вы можете обрезать изображение с помощью простого скрипта cropper.js и PHP. Это простой JQuery плагин изображения кадрирования cropper.js. Cropper Js наследуется от размера родительского элемента изображения (wrapper), так что не забудьте обернуть изображение с видимым блочным элементом и вывод укороченных размеров исходного изображения, так что вы можете использовать их, чтобы обрезать изображение непосредственно.

Простая обрезка изображения с помощью cropper.js и PHP

Особенности списков:

  • Поддерживает связь (мобильный)
  • Поддерживает масштабирование
  • Поддержка вращения
  • Поддерживает масштабирование (листать)
  • Поддержка нескольких croppers
  • Поддерживает обрезку на холсте
  • Поддерживает обрезку изображения в холсте браузера
  • Поддержка для преобразования информации Exif
  • Поддержка кросс-браузерности

Зависимости сервера

— PHP 5.5+

Поддержка браузеров

  • — Chrome (последняя 2)
  • — Firefox (последняя 2)
  • — Internet Explorer 8+
  • — Opera (последние 2)
  • — Safari (последние 2)

Включите JS файлы:

<script src="/путь_к/jquery.js"></script><!-- требуется jQuery -->

<link  href="/путь_к/cropper.css" rel="stylesheet">

<script src="/путь_к/cropper.js"></script>