Примеры использования .htaccess

21:48 12.08.2017
.htaccess (с точкой в начале имени) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. При помощи файла .htaccess можно задать большое количество параметров и разрешений для работы веб-сервера в отдельных папок, например: доступ к папкам, определение главной страницы, отображение ошибок 401, 403, 404, 500, и многое другое можно сделать файлом .htaccess без изменения главного конфигурационного файла. Файл .htaccess может находится в лубом каталоге, настройки этого файла действуют на все файлы размещенных в одной директорий и во всех подкаталогах, конечно если в подкаталогах нет своего .htaccess.

Как использовать .htaccess?
Как я уже писал чуть выше, при помощи .htaccess можно определить главную страницу вашего сайта, для этого открываем файл любым текстовым редактором (например этим: Notepad++) и пишем следующие:
DirectoryIndex index.php index.shtml

можно указать несколько индексных страниц, при запросе файл их ищет том порядке, в каком они прописаны.

Для обработки ошибок в файле .htaccess пишем:
ErrorDocument 401 http://mysite.ru/401.html 
ErrorDocument 403 http://mysite.ru/403.html 
ErrorDocument 404 http://mysite.ru/404.html 
ErrorDocument 500 http://mysite.ru/500.html  

где 401.html, 403.html, 404.html и 500.html будут ваши страницы с информацией об ошибках:
401 ошибка — Требуется авторизация (Authorization Required).
403 ошибка — пользователь не прошел аутентификацию, доступ запрещен (Forbided).
404 ошибка — Документ не найден (Not Found).
500 ошибка — Внутренняя ошибка сервера (Internal Server Error).

Для того, что бы задать кодировку файлов пишем:
AddDefaultCharset UTF-8

в этом случаи файлы будут в кодировке UTF-8.

Для запрета доступа ко всем файлам пишем:
deny from all

Для экстренного изменения расширения с HTML на PHP в своем файле .htaccess дописываем следующие:
AddHandler application/x-httpd-php .html

Следует изменить адреса ссылок с index.html на index.php, во избежании 404 ошибки.

Читайте еще:
Настройки .htaccess
Подключение PHP файлов при помощи .htaccess
Подключение PHP файлов при помощи .htaccess
8:32 13.08.2017
Редирект
Файл возможно использовать для полного перенаправления на другой адрес, например, пишем в файле:
Redirect / https://site.com

после чего файл будет перенаправлять пользователя на адрес https://site.com

Или же можно перенаправить с одной страницы на другую, на том же сайте. Для этого используем Redirect 301 делаем так:
Redirect 301 /forum/thread/863/ https://danfa.net/forum/thread/863/
10:31 13.08.2017
Хочу продолжить разговор на тему изменения внешнего вида ссылки при помощи .htaccess.
Делая сайт для фотографий мне показалось, что ссылки на страницы фотографий слишком длинный. Раньше они были такого вида: http://mysite.ru/index.php?p=view&photo_img=9d5c286b6db1ebadc07858e13eab535a377.jpg. Немного покопавшись в Интернете нашел такое решение:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=view&photo_img=$1 [L,QSA]
Options +FollowSymlinks

Теперь ссылки выглядят так: http://mysite.ru/9d5c286b6db1ebadc07858e13eab535a377.jpg - на много короче.
Естественно выше представленный код вставляется в файл .htaccess, который находится в корне сайта.

Изменить вид URL, скажем с такого:
http://mysite.ru/blog.php?mode=read&art=20

на такой:
http://mysite.ru/post20.html

Можно так:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^post([0-9]+).html/?$ /blog.php?mode=read&art=$1 [L,QSA] 

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