Виртуальный хост для этого сайта имеет: имя_сервера "mysite.edu/frede", где "/ frede" имеет псевдоним / fred "Document Root" / var / www/fred/web "
- .conf-файл, содержащий определение VirtualHost, также содержит следующее: Опции Индексы FollowSymLinks AllowOverride All # Требовать все предоставленные
#
Настройки Apache / PHP / Drupal:
#
Защита файлов и каталогов от посторонних глаз.
Требовать все отклоненные Заказ разрешить, запретить
Не показывать списки каталогов для URL-адресов, которые сопоставляются с каталогом.
Опции -Indexes
Установить обработчик по умолчанию.
Di indexoryIndex index. php index. html index.htm
Добавить правильную кодировку для SVGZ.
AddType image / svg + xml svg svgz AddEncoding gzip svgz
Большинство следующих параметров PHP не могут быть изменены во время выполнения. См.
sites / default / default.settings. php и
Drupal \ Core \ DrupalKernel :: bootEnvironment () для настройки, которая может быть
изменена во время выполнения.
PHP 5, Apache 1 и 2.
php_value assert.active 0 php_flag session.auto_start off php_value mbstring.http_input pass php_value mbstring.http_output pass php_flag mbstringen PHP 5.6 устарел $ HTTP_RAW_POST_DATA и выдает предупреждения, если это не # установлено. php_value always_populate_raw_post_data -1
Требуется включить mod_expires.
# Включить истечение срока действия. ExpiresActive On
# Кэшировать все файлы в течение 2 недель после доступа (A). ExpiresDefault A1209600
# Не разрешать кэширование сценариев PHP, если только они явно не отправляют заголовки кэша # сами. В противном случае все сценарии должны были бы перезаписать заголовки #, установленные mod_expires, если им нужно другое поведение кэширования. Это может # привести к сбою, если в начале процесса bootstrap возникает ошибка, и может # вызвать проблемы, если в подкаталоге установлен файл не-Drupal PHP. ExpiresActive Off
Установить запасной ресурс, если mod_rewrite не включен. Это позволяет Drupal
работать без чистых URL. Для этого требуется Apache версия> = 2.2.16. Если Drupal
http://example.com/), путь к index. php необходимо будет отрегулировать.
FallbackResource /index.php
Различные правила перезаписи.
RewriteEngine при
# Установить "protossl" в "s", если к нам обращались через https://. Это будет использовано позже #, если вы включите "www." зачистка или принудительное исполнение, чтобы гарантировать, что # вы не отскок между http и https. RewriteRule ^ - [E = protossl] RewriteCond% {HTTPS} в RewriteRule ^ - [E = protossl: s]
# Убедитесь, что HTTP-заголовок авторизации доступен для PHP # даже при работе в качестве CGI или FastCGI , RewriteRule ^ - [E = HTTP_AUTHORIZATION:% {HTTP:Authorization}]
# Блокировать доступ к «скрытым» каталогам, имена которых начинаются с точки. Это # включает каталоги, используемые системами контроля версий, такими как Subversion или # Git, для хранения управляющих файлов. Файлы, имена которых начинаются с точки, а также # управляющие файлы, используемые CVS, защищены директивой FilesMatch # выше. # # ПРИМЕЧАНИЕ. Это работает только при загрузке mod_rewrite. Без mod_rewrite # невозможно заблокировать доступ ко всем каталогам из .htaccess, поскольку # здесь не разрешено. # # Если у вас не установлен mod_rewrite, вы должны удалить эти # каталоги из своего Интернета root или иным образом защитить их от # загрузки. RewriteRule "/.|^.(?!well-known/)" - [F]
# Если доступ к вашему сайту возможен как с, так и без 'www.' префикс, вы # можете использовать одну из следующих настроек, чтобы перенаправить пользователей на предпочитаемый вами URL, либо С, либо БЕЗ «www». приставка. Выберите ТОЛЬКО один вариант: # # Чтобы перенаправить всех пользователей на сайт с помощью «www.» префикс # (http://example.com/foo будет перенаправлен на http://www.example.com/foo) # раскомментируйте следующее: # RewriteCond% {HTTP_HOST}. # RewriteCond% {HTTP_HOST}! ^ Www. [NC] # RewriteRule ^ http% {ENV: protossl}: //www.% {HTTP_HOST}% {REQUEST_URI} [L, R = 301] # # Для перенаправления всех пользователей на сайт БЕЗ «www». префикс # (http://www.example.com/foo будет перенаправлен на http://example.com/foo) # раскомментируйте следующее: # RewriteCond% {HTTP_HOST} ^ www. (. +) $ [NC] # RewriteRule ^ http% {ENV: protossl}: //% 1% {REQUEST_URI} [L, R = 301]
# Измените RewriteBase, если вы используете Drupal в подкаталоге или в # VirtualDocument Root и правила перезаписи не работают должным образом. # Например, если ваш сайт находится на http://example.com/drupal, раскомментируйте и # измените следующую строку: # RewriteBase / drupal RewriteBase / fred
# # Если ваш сайт работает в VirtualDocument Root at http://example.com/, # раскомментируйте следующую строку: # RewriteBase /
# # Установка AllowOverride All сгенерировала внутреннюю ошибку сервера # AllowOverride All
# Redirect common PHP файлы на их новые места. RewriteCond% {REQUEST_URI} ^ (. )? / (Установить. php) [OR] RewriteCond% {REQUEST_URI} ^ (. )? / (Перестроить. php) RewriteCond% {REQUEST_URI} ! core RewriteRule ^% 1 / core /% 2 [L, QSA, R = 301]
# Перезаписать установку. php во время установки, чтобы проверить, работает ли mod_rewrite RewriteRule ^ core / install. php core / install. php? rewrite = ok [QSA, L]
# Передать все запросы, не относящиеся непосредственно к файлам в файловой системе, в # index. php. RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteCond% {REQUEST_URI}! = / Favicon.ico RewriteRule ^ index. php [L]
# По соображениям безопасности запретить доступ на другие PHP файлы на сайтах c. # Примечание: следующие условия URI не привязаны в начале (^), потому что Drupal может находиться в подкаталоге. Для дальнейшего улучшения # безопасности вы можете заменить '! /' На '! ^ /'. # Разрешить доступ к PHP файлам в / core (например, авторизовать. php или установить. php): RewriteCond% {REQUEST_URI}! / Core / [^ /] .php $ # Разрешить доступ для тестирования -specifi c PHP файлы: RewriteCond% {REQUEST_URI}! / core / modules / system / tests / https?. php # Разрешить доступ к пользовательскому фронт-контроллеру модуля статистики. # Скопируйте и адаптируйте это правило для непосредственного выполнения PHP файлов во внесенных или # пользовательских модулях или для запуска другого приложения PHP в том же каталоге. RewriteCond% {REQUEST_URI}! /Core/modules/statistics/statistics.php$ # Запретить доступ к любым другим PHP файлам, которые не соответствуют вышеуказанным правилам. # В частности, запретить автозагрузку. php от обслуживания напрямую. RewriteRule "^ (. + /. | автозагрузка). php ($ | /)" - [F]
# Правила правильной подачи сжатых gzip файлов CSS и JS. # Требует, чтобы оба mod_rewrite и mod_headers были включены. # Обслуживайте сжатые gzip CSS файлы, если они существуют, и клиент принимает gzip. RewriteCond% {HTTP:Accept-encoding} gzip RewriteCond% {REQUEST_FILENAME} .gz -s RewriteRule ^ (. *). css $ 1. css .gz [QSA]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
<FilesMatch "(\.js\.gz|\.css\.gz)$">
# Serve correct encoding type.
Header set Content-Encoding gzip
# Force proxies to cache gzipped & non-gzipped css/js files separately.
Header append Vary Accept-Encoding
</FilesMatch>
# Various header fixes.
<IfModule mod_headers.c>
# Disable content sniffing, since it's an attack vector.
Header always set X-Content-Type-Options nosniff
# Disable Proxy header, since it's an attack vector.
RequestHeader unset Proxy
</IfModule>