Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
234
Добавлен:
17.04.2018
Размер:
2 Мб
Скачать
☆

Интернет-программирование. Apache. .htaccess

МИЭТ, 2017

Файл .htaccess переопределяет настройки главного конфигурационного файла Apache httpd.conf для папки (директории) сайта в которой он находится и всех

вложенных в нее папок (директорий)

Администратор сервера в файле httpd.conf может запретить переопределение любых директив в файле .htaccess. В этом случае разработчик получает ошибку 500.

Из всех применений .htacces, наиболее часто используемые следующие:

1.Преобразование URL адресов (например для ЧПУ)

2.Перенаправления (Редиректы)

3.Ограничения доступа

4.Настройка кодировки

5.Настройка взаимодействия с интерпретаторами дин. Страниц (например - PHP)

Интернет-программирование. Apache. .htaccess. mod_rewite

МИЭТ, 2017

Преобразование URL адресов выполняется с помощью модуля mod_rewrite. Модуль перехватывает «на лету» входящие URL, преобразует их и перенаправляет выполнение по новому адресу. При преобразовании модуль использует правила регулярных выражений.

Директива включения модуля mod_rewrite в .htaccess

RewriteEngine on

Пример для ЧПУ

Нужно перенаправить запрос с URL mysite.ru/sport/foto/12345.html в файл mysite.ru/sport/foto/detail.php?ELEMENT_ID=12345

А если URL имеет вид: mysite.ru/sport/foto/marafon_41.html

в файл mysite.ru/sport/foto/detail.php?ELEMRNT_CODE=marafon_41

Запись в .htaccess

RewriteRule sport/foto/([0-9]+)\.html /sport/detail.php?ELEMENT_ID=$1 RewriteRule sport/foto/([^\.]+)\.html /sport/detail.php?ELEMENT_CODE=$1

Интернет-программирование. Apache. .htaccess. Редиректы

МИЭТ, 2017

Синтаксис: Redirect [status] URL-path URL

status: необязательное поле (но используются поисковыми роботами в определенных ситуациях), определяет код возврата, допустимые значения:

permanent (301 — документ перемещен постоянно) temp (302 — документ перемещен временно) seeother (303 — смотрите другой)

URL-path: локальная часть URL запрашиваемого документа.

URL: URL куда должен быть выполнен редирект

Значения статуса это то, что будет возвращено в HTTP ответе клиенту. Правильно при изменении структуры сайта все старые адреса с помощью 301-го редиректа перенаправить на новые. В этом случае поисковая машина «все поймет» и сайт не «просядет» в поисковой выдаче.

Интернет-программирование. Apache. .htaccess. Редиректы

МИЭТ, 2017

Пример 301-го редиректа. Документ index.php навсегда перемещен из папки doc в папку newdoc.

Redirect 301 /doc/index.php http://mysite.ru/newdoc/index.php

Пример полного перенаправления со всего сайта на другой сайт

Redirect / http://htaccess.net.ru/

Пример редиректа с использованием регулярного выражения. Вместо всех картинок с расширением GIF будут отдаваться картинки с расширением PNG.

RedirectMatch (.*)\.gif$ http://htaccess.net.ru/$1.png

Интернет-программирование. Apache. .htaccess. Ограничение доступа. МИЭТ, 2017

Любую папку с помощью .htaccess можно закрыть паролем. Для этого нужно сначала сгенерировать файл паролей .htpasswd с помощью специальной программы passwd.exe, которую легко найти и скачать из Интернет.

Сгенеренный файл паролей надо загрузить на сервер в ту-же папку, где находится файл .htaccess. Затем записать в .htaccess директивы:

AuthType Basic

AuthUserFile /home/www/.htpasswd

Require valid-user

Здесь /home/www/ путь от корня виртуального диска к папке сайта. В данном случае, если www — корневая папка сайта, то весь сайт будет защищен паролем.

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

Интернет-программирование. Apache. .htaccess. Кодировка.

МИЭТ, 2017

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

AddDefaultCharset UTF-8

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

CharsetSourceEnc UTF-8

Для отмены перекодировки (например, если она была включена в httpd.conf, а на вашем сайте не нужна) пишем:

CharsetDisable On

Интернет-программирование. Apache. .htaccess. Настройка PHP

МИЭТ, 2017

Поскольку Web-сервер получает запрос первым и именно он вызывает интерпретатор PHP, существует возможность изменять при запуске директивы php.ini для конкретной папки (сайта).

Существует два формата задания директив для php.ini в htaccess:

php_value name value - Устанавливает значение специфицированной переменной.

php_flag name on|off - Используется для установки булевой опции конфигурации.

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

php_value error_reporting “E_ALL & ~E_NOTICE”

Не показывать ошибки в скриптах:

php_value error_reporting 0 или php_flag error_reporting 0

Устанавливаем вывод ошибок и предупреждений в браузер:

php_flag display_errors Off или php_flag display_errors On

Интернет-программирование. Виды хостинга

МИЭТ, 2017

Виртуальный

Виртуальный выделенный сервер

Выделенный сервер

Размещение оборудования клиента в Дата-центре

Интернет-программирование. Виртуальный хостинг.

МИЭТ, 2017

В виртуальном хостинге все ресурсы (сайты) работают под одной ОС на одной машине и делят общую память и ресурсы процессора. По схеме виртуального хостинга на одном компьютере могут размещаться несколько десятков сайтов.

Преимущество — дешевизна.

Диапазон ежемесячной оплаты от 100 до 1000 руб.

Недостаток — взаимное влияние сайтов друг на друга.

Перегрузка одного сайта может привести к «тормозам» на других сайтах.

Состав ПО виртуального хостинга чаще всего: Apache, PHP, Perl, Python, MySQL.

Интернет-программирование. Настройка виртуального хостинга

МИЭТ, 2017

Настройка Apache

Не все провайдеры предлагают настройку Apache. Но если предлагают, она выглядит Примерно так:

Соседние файлы в папке Интернет технологии