Remkomplekty.ru

IT Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Allow url include htaccess

Allow url include htaccess

Краткое разъяснение конфигурационных директив.

Данная директива включает поддержку оберток URL (URL wrappers), которые позволяют работать с объектами URL как с обычными файлами. Обертки, доступные по умолчанию, служат для работы с удаленными файлами с использованием ftp или http протокола. Некоторые расширения, например, zlib, могут регистрировать собственные обертки.

Эта опция позволяет использование оберток fopen, которые поддерживают работу с URL, в функциях include , include_once , require , require_once .

Замечание:

Эта опция требует включения опции allow_url_fopen.

Устанавливает отсылаемую PHP строку «User-Agent».

Значение тайм-аута по умолчанию (в секундах) для потоков, использующих сокеты.

Адрес email, используемый в соединениях FTP без авторизации, а также в качестве значения заголовка From в HTTP соединениях при использовании ftp и http оберток, соответственно.

Когда данная директива включена, PHP проверяет данные, получаемые функциями fgets() и file() с тем, чтобы определить способ завершения строк (Unix, MS-Dos или Macintosh).

Данная директива позволяет PHP взаимодействовать с системами Macintosh, однако, по умолчанию эта директива выключена, поскольку при ее использовании возникает (несущественная) потребность в дополнительных ресурсах для определения символа окончания первой строки, а также потому, что программисты, использующие в системах Unix символы возврата каретки в качестве разделителей, столкнутся с обратно-несовместимым поведением PHP.

User Contributed Notes 3 notes

I’m surprised this isn’t mentioned in docs here, but to set these values at runtime use «ini_set()». For example:

Please note that although you may try to set default_socket_timeout to something over 20s, you may get tricked by the Linux kernel.

The default value of tcp_syn_retries is set to 5, which will effectively timeout any TCP connection after roughly 20s, no matter what limits you set in PHP higher than this.

The value can be altered by root only, like this:

echo 6 > /proc/sys/net/ipv4/tcp_syn_retries

A value of 6, as above, will give you a timeout up to

If you want to use auto_detect_line_endings, e.g. to recognize carriage return on a Classic Mac file, you must set it before calling fopen. You can then reset it to its original value. E.g,

$original = ini_get(«auto_detect_line_endings»);
ini_set(«auto_detect_line_endings», true);
$handle = fopen($someFile, «r»);
ini_set(«auto_detect_line_endings», $original);
while (($line = fgets($handle)) !== false) <
echo «$linen»; // etc
>

Keep in mind also that Mac OS X bash does not handle carriage returns well, so if it seems like your code is not working when testing from the command line, redirect your output to a file and then try looking at that. On my system, doing it directly on the command line only showed the last line (with or without this setting turned on).

Also note that this will not do what you want if you have a file with mixed line endings (!). If you really care about that case, you have to do something else, like run the file through a translation first and then read it.

Конфигурация серверов

Что такое CRON?

CRON(от анлг. Command Run On) — планировщик задач в UNIX-образных операционных системах, использующийся для периодического выполнения заданий в заданное время.
Каждый пользователь системы имеет свой файл заданий crontab, в котором описано, в какое время и какие программы запускать от имени этого пользователя. Для редактирования файла crontab используется специальная одноименная программа crontab, позволяющая не прерывать процесс CRON на время редактирования.

Можно ли использовать crontab?

Да. Вы можете установить задачи для выполнения по crontab из Панели управления, из раздела «CronTab».

Как настроить выполнение задачи на определённое время?

Вы можете настроить выполнение скриптов на определённое время через Панель Управления в разделе «CronTab». Заполнить время и путь до исполняемого файла и нажать «Добавить».

Время, интервал
Минуты могут быть от 0 до 59
Часы могут быть от 0 до 23
День месяца может быть от 1 до 31
Месяц может быть 1 до 12
День недели может быть от 0 до 7 (0 и 7 — воскресенье)
Можно конфигурировать crontab для выполнения задач не только в определенное время, но и ежеминутно, ежечасно, ежедневно, еженедельно или ежемесячно, используя комбинацию */x

Пример

  • */5 * * * * — запускать команду каждые пять минут
  • 0 */3 * * * — запускать каждые три часа
  • 0 12,13,14 * * * — запускать команду каждый час с 12 до 14

Необходимо задать путь до скрипта от домашнего каталога. Например:

Система сама подставит символ

/ (эта комбинация заменяет полный путь). Получится:

Если в конце пути поставить символ &, то скрипт будет работать в фоновом режиме. Установка этого символа необязательна.

Что такое файл .htaccess?

Каждый раз, когда поступает запрос на открытие web-страницы, сервер сначала анализирует .htaccess файл. .htaccess ищется в корневой web-директории, а затем по дереву директорий, пока не дойдет до директории, где находится запрашиваемая страница.

Как мне настроить сообщения об ошибке, чтобы открывался мой сайт?

В .htaccess напишите следующее:

Как вызвать SSI директиву?

SSI директива может вызываться только в файлах с расширением .shtml

Я установил кодировку UTF-8, но сайт не работает корректно, что делать?

В файле .htaccess напишите следующую строчку:

Как установить страницу, открывающуюся по умолчанию при загрузке моего сайта?

В файле .htaccess напишите следующую строчку:

где newyearindex.html — страница которая будет загружаться при вызове Вашего сайта, например, http://mydomain.ru

По умолчанию, если в .htaccess ничего не задано, открываются файлы индексных страниц, а именно: index.htm index.html index.shtml index.cgi index.php3 index.php index.php4 index.phtml index.wml

Как настроить переадресацию?

Переадресация позволяет Вам направлять посетителя Вашего сайта на другой сайт или, например, с одной страницы сайта на другую. То есть если, например, посетитель запрашивает страницу old.htm, а вы хотите направить его на new.htm, то в файле .htaccess напишите следущее:

(эта строка должна быть введена без переносов)

Можно ли получать результат выполнения скриптов через crontab на email?

Да, можно. Вы можете задать email, на который Вы хотите получать результат работы Ваших скриптов, в Панели Управления Аккаунтом в разделе «CronTab».

Предположим, у Вас на Cron стоит PHP скрипт следующего содержания:

в случае, если указан корректный email, то на него в зависимости от времени запуска будет приходить письмо с текстом «C добрым утром», либо «Приятных снов», либо «Здравствуйте».

Как отменить кодировку по умолчанию?

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

Как включить ZLIB сжатие?

Включение происходит добавлением специальной директивы в виртуальный хост Apache. Сделать это можно в Панели Управления Aккаунтом, в разделе «Сайты», кликнув на значок PHP справа от нужного сайта и добавив следующее:

Как установить mbstring.func_overload?

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

Какое значение имеет allow_url_include на серверах, и можно ли его изменить?

По умолчанию allow_url_include on, однако при необходимости Вы можете его изменить. Сделать это можно в Панели Управления Аккаунтом, в разделе «Сайты», кликнув на значок PHP справа от нужного сайта и добавив следующее:

Allow Single URL Through .htaccess Password Protection

Learn Development at Frontend Masters

This code is useful for multi environment setups (staging, production, etc.) it allows you to keep your htaccess files in sync while maintaining an htpasswd on your development environment or anything but the live environment.

Need some front-end development training?

Frontend Masters is the best place to get it. They have courses on all the most important front-end technologies, from React to CSS, from Vue to D3, and beyond with Node.js and Full Stack.

Need some front-end development training?

Frontend Masters is the best place to get it. They have courses on all the most important front-end technologies, from React to CSS, from Vue to D3, and beyond with Node.js and Full Stack.

Читать еще:  Access violation code c0000005

Comments

I found your .htaccess setup to be pretty good, but I found it more useful to allow from all then deny from staging.

Below is the reverse of what your have in this article.

Keep up the great work!

#— Staging Server Password ————————-#
SetEnvIf Host yourstagingserver.com passreq
AuthType Basic
AuthName «Staging Server»
AuthUserFile /home/username/.htpasswd
AuthGroupFile /home/username/.htgroup
Require valid-user
Order allow,deny
Allow from all
Deny from env=passreq
Satisfy any

Thank you for the code above.

In addition, thank you Fugazer for the script above ! Worked like a charm.

Hi,
I am trying to do something similar, thought I’m not sure if it’s possible. I have an images directory on my server and I would like the images to be accessed only by one of my php pages, preventing hotlinking and direct access. For instance:

Directory:
http://www.mysite.com/images/
containing the files: 001.jpg / 002.jpg / etc

Any ideas of how should I configure my htaccess file?
PS: I don’t know if it’s important since you are using REQUEST_URI, but I have multiple domains on my server (ex. http://www.mysite.com and http://www.mysite.net)

Yep, thats exactly what I am searching for since sunday. hotlinking from one server only to only one single url.
@BRAULIO did you find a solution ??

May try if these suggestions works for you George

About midway through the page is a section about hotlinking images.

Seemed to help my site from getting hotlinked any further.

I am going through the book digging into wordpress and I copied and pasted the index.php file to the root and made the adjustments accordingly … I then checked the settings in the admin dash …

I forgot to include the .htaccess file though … I looked for it … and didnt find it in the core files … so I made one with http://www.coffeecup.com s .htaccess software … but when I went to refresh the page … I kept getting a log in prompt just to view the home page … or make changes in the dash … how do I include the .htaccess without having to “log in” everysingle time?

Many thanks for this article.

My idea was to restrict access to all pages in my website, except for those pages of which the URL starts with “/admin”. Therefore, I modified the above example to the following:

Now, pages with “/admin…” URL’s are working fine without password, and other pages require authentication first. However, after having entered the password, I get an internal server error (500).

Could anyone please help me out here? 🙂

Many thanks! Keep up the good work…

I went with Fugazer’s example but thanks for the article and help.

Really useful article thanks!
I’m IP filtering a site currently but I need to allow my RSS feeds to go through or rather not to be IPfiltered.
Is there a way I can create a rule in htaccess to filter all except feeds?

Just something worth mentioning. If you use the example above but then are also doing rewriting everything to an index.php which is the case with some php frameworks the above does not work. Im not sure exactly why but I thought it worth mentioning.

It does work with PHP frameworks that use .htaccess for URL rewrites. You just have to make sure this logic is above where you’re doing your rewriting for index.php.

For example, the following password protects a certain URL (/admin), but allows it work with out a password if it matches my local host name:

#allows a single uri through the .htaccess password protection
SetEnvIf Request_URI “/testing_uri$” test_uri

#allows everything if its on a certain host
SetEnvIf HOST “^testing.yoursite.com” testing_url
SetEnvIf HOST “^yoursite.com” live_url
Order Deny,Allow

AuthName “Restricted Area”
AuthType Basic
AuthUserFile /path/to/your/.htpasswd
AuthGroupFile /
Require valid-user

#Allow valid-user
Deny from all
Allow from env=test_uri
Allow from env=testing_url
Allow from env=live_url
Satisfy any

I’d like to protect a single page in my website (www.example.com/extranet/).

How can I use this snippet to fix this? Help would be very much appreciated.

I’m on Apache/2.4.27 (cPanel) by the way (not sure if that matters).

Helpful article, but on the version of Apache 2.4.x that my host uses (NearlyFreeSpeech), Allow is no longer a valid directive.

In case this is helpful for others: I set up a site with SSL using Let’s Encrypt, and later switched the entire site to being protected by htpasswd. This of course caused the tlssetup cron job required by Let’s Encrypt (which accesses a .well-known directory on your site) to fail.

The quick fix for me was to create a .htaccess file inside the .well-known directory that just includes the line Require all granted . Now the whole site is protected, just excluding this directory.

Leave a Reply Cancel reply

All comments are held for moderation. We’ll publish all comments that are on topic, not rude, and adhere to our Code of Conduct. You’ll even get little stars if you do an extra good job.

You may write comments in Markdown. This is the best way to post any code, inline like `

Want to tell us something privately, like pointing out a typo or stuff like that? Contact Us.

How do you stay up to date in this fast⁠-⁠moving industry?

A good start is to sign up for our weekly hand-written newsletter. We bring you the best articles and ideas from around the web, and what we think about them.

CSS-Tricks * is created, written by, and maintained by Chris Coyier and a team of swell people. The tech stack for this site is fairly boring. That’s a good thing! I’ve used WordPress since day one all the way up to v17, a decision I’m very happy with. I also leverage Jetpack for extra functionality and Local for local development.

* May or may not contain any actual «CSS» or «Tricks».

Other Nav

CodePen is a place to experiment, debug, and show off your HTML, CSS, and JavaScript creations.

CSS-Tricks is hosted by Flywheel, the best WordPress hosting in the business, with a local development tool to match.

ShopTalk is a podcast all about front-end web design and development.

10+ вставок кода для htaccess

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

1. Управление доступом к файлам и каталогам

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

Для решения задачи добавьте следующий код в файл .htaccess и сохраните его в нужном каталоге:

Но такой ход блокирует доступ для всех, включая вас. Чтобы обеспечить себе доступ нужно указать IP свой адрес. Вот код:

xxx.xxx.xxx.xxx — ваш IP адрес. Если заменить последние три цифры на 0/12 , например, то будет указан диапазон IP адресов в одной сети. Но такой подход может привести к проблемам, поэтому лучше указывать список IP адресов раздельно.

Читать еще:  Cannot access перевод

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

Аналогично, если вам требуется открыть доступ с определенных IP адресов, перечислите их с помощью allow from .

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

2. Запрещаем просмотр директории

Для запрещения просмотра содержимого директории используйте следующий код:

Но если вам нужно по каким-то причинам разрешить просмотр директории, используйте следующий код:

3. Ускоряем загрузку с помощью сжатия файлов

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

А для сжатия текстовых:

Можно также сжимать JavaScript файлы или определять несколько типов файлов для архивации:

В качестве альтернативы можно сжимать все HTML, JavaScript, CSS и прочие файлы с помощью GZIP:

4. Защищаем сайт от хотлинкинга

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

Просто замените вашдомен.ru на название своего домена.

5. Блокирование пользователей перенаправленных с определенного домена

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

Нужно заменить bannedurl1.com и bannedurl2.com на имена доменов из вашего черного списка. Флаг [NC] указывает на отсутствие чувствительности к регистру в имени домена, а флаг [F] определяет действие — в нашем примере вывод страницы 403. Если нужно забанить несколько сайтов, используйте флаг [NC,OR] для каждого домена, включая последний. Для запрета только одного домена можно использовать только флаг [NC] .

6. Блокирование запросов от определенных агентов

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

Замените badbot1 , badbot1 и так далее именами агентов из вашего журнала. Такое действие будет держать данные программы подальше от вашего сайта.

7. Кеширование файлов

Другой метод ускорения загрузки вашего сайта — кеширование файлов. вот что нужно добавить в файл .htaccess для включения кеширования:

Вы можете добавить типы файлов (или удалить некоторые из них) к списку в примере. Также можно использовать max-age для указания времени в секундах, для хранения ваших файлов в кеше.

8. Отключение кеширования для определенных типов файлов

Если вам не нужно кешировать определенные типы файлов, то можно просто не включать их в список. Однако, иногда файлы могут кешироваться даже если вы не объявили их в списке. В таких случаях можно отключить кеширование только для таких типов файлов. В большинстве случаев требуется отключать кеширование для динамических файлов, таких как скрипты. Вот код:

Просто добавьте типы фалов, которые не нужно кешировать в список.

9. Пропускаем диалог загрузки

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

10. Переименование файла .htaccess

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

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

11. Изменение индексной страницы по умолчанию

Если вам требуется, чтобы индексная страница отличалась от значения по умолчанию, index.html , index.php , index.htm и так далее, то данная задача решается легко. Вот что нужно добавить в файл .htaccess :

Замените mypage.html на адрес URL нужной страницы.

12. Перенаправление на безопасное соединение https

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

13. Ограничение размера файла загрузки в PHP, максимального размера запроса и максимального времени выполнения скрипта

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

Конечно, вы можете установить значение, которое требуется, в нашем примере 15M (MB) не является фиксированным. Также можно ограничить максимальны размер запроса для загрузки в PHP:

Измените 10M на то значение, которое вам требуется.

Если вы не хотите, чтобы скрипт выполнялся вечно, то можно ограничить время его работы:

240 — количество секунд до прерывания работы скрипта.

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

14. Маскировка типов файлов

Иногда нужно скрыть от пользователя типы файлов на сервере. Один из способов решить задачу — замаскировать их. Например, вы можете сделать так. что все файлы будут выглядеть как HTML или PHP:

Заключение

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

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://speckyboy.com/2013/01/08/useful-htaccess-snippets-and-hacks/
Перевел: Сергей Фастунов
Урок создан: 15 Января 2013
Просмотров: 50669
Правила перепечатки

5 последних уроков рубрики «Для сайта»

Эффекты блочного раскрытия

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

15 полезных .htaccess сниппета для сайта на WordPress

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

20 бесплатных тем для WordPress в стиле Material Design

Material Design — это набирающий обороты тренд от Google. В данной подборке собраны бесплатные темы для WordPress, выполненные в этом популярном стиле.

20 сайтов с креативным MouseOver эффектом

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

45+ бесплатных материалов для веб дизайнеров за август 2016

Под конец месяца предлагаем ознакомиться с набором бесплатных материалов для веб дизайнеров за прошедший месяц.

Конфигурирование сайта с помощью файла .htaccess

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

Как известно, все настройки сервера Apache находятся в файлe httpd.conf, доступ к которому имеется не всегда. Например, если используется виртуальный сервер на хостинге, когда один сервер Apache обслуживает сотни сайтов, то, естественно, нельзя позволить владельцу одного сайта менять конфигурацию сервера, которая отразится на всех остальных сайтах. Тем не менее Web — сервер Apache допускает конфигурирование на уровне отдельных каталогов при помощи файлов .htaccess. Именно на работу с этими файлами, как единственными конфигурационными файлами, которые доступны большинству Web — разработчиков, и будет сделан основной упор в этой статье.

Читать еще:  Бд субд access

Файл .htaccess (с точкой в начале имени) – это конфигурационный файл, который даёт возможность настраивать работу сервера на уровне отдельных каталогов: устанавливать права доступа к файлам в каталогах, менять названия индексных файлов, самостоятельно обрабатывать коды ответов протокола HTTP, модифицировать адреса запрошенных страниц.

Примечание
Файл .htaccess может быть размещен в любом каталоге. Директивы этого файла действуют на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами файлов .htaccess во вложенных каталогах).

Изменения, вносимые в файлы .htaccess, вступают в силу немедленно и не требуют перезагрузки сервера в отличие от изменений, вносимых в главный конфигурационный файл httpd.conf.

Для того, чтобы файлы .htaccess можно было использовать, необходимы соответствующие настройки главного конфигурационного файла httpd.conf, где должны быть прописаны директивы, которые разрешат файлу .htaccess переопределять конфигурацию Web-сервера в каталоге. Список этих директив задаётся директивой AllowOverride.

Директива AllowOverride может включать в себя одну из следующих директив или их комбинацию: AuthConfig, FileInfo, Indexes, Limit, Options, All, None

Для того чтобы дать директивам файлов .htaccess максимальные права на изменения директив, значение директивы AllowOverride в файле httpd.conf должно быть равно All. Оно является значением по умолчанию.

Запретить переопределение любых директив в конфигурационных файлах .htaccess можно при помощи значения None:

Замечание
Название конфигурационного файла можно изменить, и например, назвать его не .htaccess, a access.conf. За название этого файла отвечает директива AccessFileName в файле httpd.conf. Изменение названия конфигурационного файла .htaccess не рекомендуется, т.к. это может усложнить дальнейшую поддержку сервера.

Синтаксис .htaccess

Перед тем, как будут рассмотрены примеры, остановимся на синтаксисе директив в файлах .htaccess.

  • Пути к файлам и каталогам должны указываться от корня сервера, например, /pub/articles/masters/php/
  • При указании абсолютных url обязательно должны быть зааданы протоколы, например: Redirect / http://www.site.ru
  • В файлах .htaccess недопустимы пробелы в указаниях путей к файлам и в названиях самих файлов, т.к. это приводит к генерации кода ответа 500 — ошибка конфигурации сервера: «Internal Server Error».

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

Индексные страницы:

Могут возникнуть ситуации, когда необходимо изменить состав индексных файлов, например, если нужна индексная страница index.php, а в основном конфигурационном файле httpd.conf она не прописана. Эту задачу можно решить при помощи файла .htaccess, в котором необходимо создать директиву DirectoryIndex, где будут перечислены имена индексных страниц:

DirectoryIndex index.php index.shtml index.html

При запросе каталога без указания имени файла сначала будет осуществлён поиск страницы с именем index.php. Если страницы с таким именем нет в каталоге, то аналогичные операции будут произведены с файлом index.shtml и т.д. до конца списка, пока не будет найдена и открыта соответствующая страница.

Запрет на отображение содержимого каталога при отсутствии индексного файла

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

Обработка кодов ответов Web-сервера Apache

Ни один сайт не затрахован от возникновения ошибок. Самой частой ошибкой является переход по ссылке на несуществующую страницу. В этом случае Apache генерирует код ответа 404 и отображает автоматически сгенерированную страницу с сообщением об ошибке. Наличие несуществующих страниц производит плохое впечатление на посетителей сайта. Это впечатление можно сгладить, если вместо стандартных страниц, подставлять собственные страницы с сообщением об ошибке. За назначение страниц — обработчиков кодов ответа протокола HTTP несёт ответственность директива ErrorDocument

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

После директивы ErrorDocument следует указать код ответа и страницу, на которую необходимо перенаправить посетителя при возникновении данного кода ответа.

  • 401 ошибка — Запрос требует аутентификации пользователя (Unautorized).
  • 403 ошибка — Доступ к запрашиваемому ресурсу запрещён (Forbidden).
  • 404 ошибка — Запрашиваемый документ на сервере отсутствует (Not Found).
  • 500 ошибка — Ошибка конфигурации сервера или внешней программы (Internal Server Error).

Выполнять код PHP в файлах HTML

Обычно PHP-код выполняется в файлах с расширениями php. Иногда возникают ситуации, когда необходимо выполнять PHP-код в файлах с другим расширением. В этом случае можно дать указание Web-серверу выполнять PHP-код не только в файлах с расширением php, но и в файлах с расширением html.

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

Первая строка удаляет обработчик файлов с расширениями html и htm, а вторая строка сообщает серверу о необходимости использовать для файлов с расширениями htm и html обработчик PHP

Задание кодировки файлов на сервере

Указанная кодировка отправляется браузеру в заголовке Content-Type и позволит браузеру клиента автоматически переключиться на требуемую кодировку.

Задание кодировки загружаемых файлов

При загрузке файлов на сервер можно указать, в какой кодировке сервер должен ожидать файл.

Отключение директивы MultiViews

Включённая на хостинге опция MultiViews может вызвать неожиданные проблемы, например, отображение несуществующих страниц сайта. Допустим, на сайте существует страница с адресом http://www.sait.ru/down.php , и если посетители обратятся к несуществующему каталогу http://www.sait.ru/down/ , то включённая опция MultiViews вместо этого каталога подставит файл down.php. Однако подстановка будет выполнена не полностью — пути к изображениям, таблицам стилей и т.п. будут подставлены неверно. То есть страница будет отображена с искажениями. Для подавления такого поведения Apache опцию MultiViews следует отключить.

Запрет доступа к файлам

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

Примечание
Использование директив Deny и Allow управляет только доступом к файлам из браузера, либо из другой программы-клиента. Подобные запреты не распространяются на скрипты сервера.

Запрет доступа к файлам из браузера

При использовании такой директивы будет запрещён доступ из браузера ко всем файлам и каталогам текущего каталога.

Запрет доступа к определенному файлу

Здесь запрещен доступ только к файлам с именем config.php.

Запрет доступа к файлам расширения inc

* — любая последовательность символов, исключая символ слеша (/).

Запретить доступа к файлам с несколькими типами расширений

Запрещен доступ к файлам с расширением inc, conf и cfg

Запретить доступ с определенного IP-адреса

Deny from 195.135.232.70

Разрешить доступ только с определенного IP-адреса

Order deny,allow
Deny from all
Allow from 195.135.232.70

Директива Order позволяет задать порядок, в котором будут выполняться директивы. Сначала выполняется директива запрета доступа(директива Deny), а затем разрешается доступ то для IP-адреса 195.135.232.70 (директива Allow). Если в первой строке поменять порядок следования директив на Order allow,deny, то доступ для IP-адреса 195.135.232.70 не будет открыть, т.к. директива Deny, выполняемая последней, перекроет действие директивы Allow.

Примечание
Следует отметить, что разрешение доступа с определённого IP-адреса иногда может не сработать. Например, в том случае, если на хостинге установлен обратный кэширующий proxy-сервер. Если директивы разрешения доступа не работают, то вам нужно обратиться по этому вопросу в службу технической поддержки хостинга.

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

Часто встречаются задачи, когда все запросы к определённому каталогу или странице нужно перенаправить (redirect) на другой адрес. Это можно сделать с помощью директив Redirect и RedirectMatch. Они сообщают, что ресурс по запрошенному url отсутствует, и указывают адрес, по которому следует перейти. Директивы Redirect посылают браузеру соответствующий заголовок, и уже браузер осуществляет перенаправление.

Глобальное перенаправление на новый адрес

Перенаправление при обращении к определённому файлу

Redirect /books/index.php http://www.site.ru/newbooks/

Перенаправление при обращении к любым страницам каталога

RedirectMatch /books/.* http://www.site.ru/newbooks/

Перенаправление при обращении к любым страницам сайта

*Републикация cтатьи возможна при сохранении исходного текста и подписи в конце статьи.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×