.htaccess

Если Вы не нашли подходящего раздела, для вопроса связанного с web строительством, то Вам сюда.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

.htaccess

Сообщение Slash » Вс янв 13, 2013 11:15 am

.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


Читайте ещё: Настроки .htaccess
Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: .htaccess

Сообщение Slash » Вт мар 26, 2013 2:04 pm

Для экстренного изменения расширения с HTML на PHP в своем файле .htaccess дописываем следующие:

Код: Выделить всё

AddHandler application/x-httpd-php .html

Следует изменить адреса ссылок с index.html на index.php, во избежании 404 ошибки.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: .htaccess

Сообщение Slash » Чт июл 25, 2013 9:21 am

Редирект
Файл возможно использовать для полного перенаправления на другой адрес, например, пишем в файле:

Код: Выделить всё

Redirect / http://www.danfa.org    

после чего файл будет перенаправлять пользователя на адрес http://danfa.org/

Или же можно перенаправить с одной страницы на другую, на том сайте. Для этого используем Redirect 301 делаем так:

Код: Выделить всё

Redirect 301 /viewtopic.php?f=8&t=258 http://danfa.org/viewforum.php?f=6  
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: .htaccess

Сообщение Slash » Чт ноя 07, 2013 10:41 am

Кеширование файлов для более быстрой загрузки Интернет страниц
Как вариант кэширование скриптов с помощью .htaccess.
Добавляем в .htaccess следующий код:

Код: Выделить всё

FileETag MTime Size
<ifmodule mod_expires.c>
    <
filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
        
ExpiresActive on
        ExpiresDefault 
"access plus 1 month"
    
</filesmatch>
</
ifmodule>

В данном примере приведено кеширование файлов: jpg, jpeg, gif, png. ico. css, js. ExpiresDefault "access plus 1 month" - срок хранение файлов, равен одному месяцу.
Еще вариант вставки:

Код: Выделить всё

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
    
Header set Cache-Control "max-age=5000000"
</FilesMatch

Так же flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf - перечисление файлов для хранения их в кэше браузера. Header set Cache-Control "max-age=5000000" - время хранения файлов в секундах, в данном случаи файлы будут храниться 5000000 секунд.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: .htaccess

Сообщение Slash » Ср ноя 13, 2013 3:53 pm

Убираем WWW из адреса (URL) с привязкой к домену

Код: Выделить всё

RewriteCond %{HTTP_HOST} ^www.danfa.org$ [NC]
RewriteRule ^(.*)$ http://danfa.org/$1 [R=301,L]  

Данный код убирает www из адреса Вашего сайта. Вместо danfa.org используйте свое доменное имя.

Убираем WWW из адреса (URL) без привязки к домену

Код: Выделить всё

RewriteCond %{HTTP_HOST} ^www\.(.*)[NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

В последней строке, знак процента с единицей (%1) можно заменить на: %{HTTP_HOST}, но я на всех своих сайтах использую знак процента с единицей, так как с %{HTTP_HOST} порой появляется ошибка.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: .htaccess

Сообщение Slash » Вс сен 21, 2014 11:19 am

Хочу продолжить разговор на тему изменения внешнего вида ссылки при помощи .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=$[L,QSA]
Options +FollowSymlinks

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

Re: .htaccess

Сообщение Slash » Вт ноя 03, 2015 7:43 pm

Изменить вид 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=$[L,QSA

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

Вернуться в «Прочее»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя