Commit fresh Drutopia project template
This commit is contained in:
parent
c4927e4c39
commit
f12d7a2aee
13 changed files with 11181 additions and 0 deletions
15
.gitignore
vendored
Normal file
15
.gitignore
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Drutopia-provided files which should not be overridden
|
||||
/web/core
|
||||
/web/modules/contrib
|
||||
/web/profiles/contrib
|
||||
/web/themes/contrib
|
||||
/web/sites/default/files
|
||||
/web/index.php
|
||||
/web/update.php
|
||||
/web/autoload.php
|
||||
/web/sites/default/default.services.yml
|
||||
/web/sites/default/default.settings.php
|
||||
/web/sites/development.services.yml
|
||||
/web/sites/example.settings.local.php
|
||||
/web/sites/example.sites.php
|
||||
/vendor/
|
15
README.md
15
README.md
|
@ -0,0 +1,15 @@
|
|||
This is a composer based installer for the [Drutopia distribution](http://www.drupal.org/project/drutopia).
|
||||
|
||||
# Prerequisites
|
||||
|
||||
1. [Prepare a local server for Drupal](https://www.drupal.org/docs/develop/local-server-setup)
|
||||
2. [Install Composer](https://getcomposer.org/download/)
|
||||
|
||||
|
||||
## Installation of Drutopia basic
|
||||
|
||||
```
|
||||
composer create-project drutopia/drutopia_template:dev-master --no-interaction DIRECTORY
|
||||
```
|
||||
|
||||
Composer will create a new directory called DIRECTORY (change to whatever presumably lower-case name you would like). Inside you will find the web directory with the entire code base of [Drutopia distribution](http://www.drupal.org/project/drutopia). You should be able to install it like any other Drupal site.
|
54
composer.json
Normal file
54
composer.json
Normal file
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"name": "drutopia/drutopia_template",
|
||||
"description": "Template for composer-based Drutopia projects.",
|
||||
"type": "project",
|
||||
"license": "GPL-2.0+",
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true,
|
||||
"require": {
|
||||
"composer/installers": "^1.0",
|
||||
"drupal-composer/drupal-scaffold": "^2.0.0",
|
||||
"cweagans/composer-patches": "^1.0",
|
||||
"drutopia/drutopia": "^1.0-beta2",
|
||||
"drush/drush": "^9.0"
|
||||
},
|
||||
"repositories": {
|
||||
"drupal": {
|
||||
"type": "composer",
|
||||
"url": "https://packages.drupal.org/8"
|
||||
},
|
||||
"drutopia": {
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/drutopia/drutopia"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"post-install-cmd": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold",
|
||||
"post-update-cmd": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold",
|
||||
"nuke": "rm -rf vendor web/core web/modules/contrib web/profiles/contrib drush/contrib",
|
||||
"quick-start": [
|
||||
"composer install",
|
||||
"php docroot/core/scripts/drupal quick-start drutopia --no-interaction"
|
||||
]
|
||||
},
|
||||
"extra": {
|
||||
"installer-paths": {
|
||||
"web/core": [
|
||||
"drupal/core"
|
||||
],
|
||||
"web/modules/contrib/{$name}": [
|
||||
"type:drupal-module"
|
||||
],
|
||||
"web/profiles/contrib/{$name}": [
|
||||
"type:drupal-profile"
|
||||
],
|
||||
"web/themes/contrib/{$name}": [
|
||||
"type:drupal-theme"
|
||||
],
|
||||
"drush/contrib/{$name}": [
|
||||
"type:drupal-drush"
|
||||
]
|
||||
},
|
||||
"enable-patching": true
|
||||
}
|
||||
}
|
10550
composer.lock
generated
Normal file
10550
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
40
web/.csslintrc
Normal file
40
web/.csslintrc
Normal file
|
@ -0,0 +1,40 @@
|
|||
--errors=box-model,
|
||||
display-property-grouping,
|
||||
duplicate-background-images,
|
||||
duplicate-properties,
|
||||
empty-rules,
|
||||
ids,
|
||||
import,
|
||||
important,
|
||||
known-properties,
|
||||
outline-none,
|
||||
overqualified-elements,
|
||||
qualified-headings,
|
||||
shorthand,
|
||||
star-property-hack,
|
||||
text-indent,
|
||||
underscore-property-hack,
|
||||
unique-headings,
|
||||
unqualified-attributes,
|
||||
vendor-prefix,
|
||||
zero-units
|
||||
--ignore=adjoining-classes,
|
||||
box-sizing,
|
||||
bulletproof-font-face,
|
||||
compatible-vendor-prefixes,
|
||||
errors,
|
||||
fallback-colors,
|
||||
floats,
|
||||
font-faces,
|
||||
font-sizes,
|
||||
gradients,
|
||||
import-ie-limit,
|
||||
order-alphabetical,
|
||||
regex-selectors,
|
||||
rules-count,
|
||||
selector-max,
|
||||
selector-max-approaching,
|
||||
selector-newline,
|
||||
universal-selector
|
||||
--exclude-list=core/assets,
|
||||
vendor
|
17
web/.editorconfig
Normal file
17
web/.editorconfig
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Drupal editor configuration normalization
|
||||
# @see http://editorconfig.org/
|
||||
|
||||
# This is the top-most .editorconfig file; do not search in parent directories.
|
||||
root = true
|
||||
|
||||
# All files.
|
||||
[*]
|
||||
end_of_line = LF
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[composer.{json,lock}]
|
||||
indent_size = 4
|
8
web/.eslintignore
Normal file
8
web/.eslintignore
Normal file
|
@ -0,0 +1,8 @@
|
|||
core/**/*
|
||||
vendor/**/*
|
||||
sites/**/files/**/*
|
||||
libraries/**/*
|
||||
sites/**/libraries/**/*
|
||||
profiles/**/libraries/**/*
|
||||
**/js_test_files/**/*
|
||||
**/node_modules/**/*
|
3
web/.eslintrc.json
Normal file
3
web/.eslintrc.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"extends": "./core/.eslintrc.json"
|
||||
}
|
61
web/.gitattributes
vendored
Normal file
61
web/.gitattributes
vendored
Normal file
|
@ -0,0 +1,61 @@
|
|||
# Drupal git normalization
|
||||
# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
|
||||
# @see https://www.drupal.org/node/1542048
|
||||
|
||||
# Normally these settings would be done with macro attributes for improved
|
||||
# readability and easier maintenance. However macros can only be defined at the
|
||||
# repository root directory. Drupal avoids making any assumptions about where it
|
||||
# is installed.
|
||||
|
||||
# Define text file attributes.
|
||||
# - Treat them as text.
|
||||
# - Ensure no CRLF line-endings, neither on checkout nor on checkin.
|
||||
# - Detect whitespace errors.
|
||||
# - Exposed by default in `git diff --color` on the CLI.
|
||||
# - Validate with `git diff --check`.
|
||||
# - Deny applying with `git apply --whitespace=error-all`.
|
||||
# - Fix automatically with `git apply --whitespace=fix`.
|
||||
|
||||
*.config text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.dist text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.engine text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
|
||||
*.inc text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.install text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.lock text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.map text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.md text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.module text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.po text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.profile text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.script text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.sh text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.sql text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.svg text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.theme text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.twig text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.txt text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.xml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.yml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
|
||||
# Define binary file attributes.
|
||||
# - Do not treat them as text.
|
||||
# - Include binary diff in patches instead of "binary files differ."
|
||||
*.eot -text diff
|
||||
*.exe -text diff
|
||||
*.gif -text diff
|
||||
*.gz -text diff
|
||||
*.ico -text diff
|
||||
*.jpeg -text diff
|
||||
*.jpg -text diff
|
||||
*.otf -text diff
|
||||
*.phar -text diff
|
||||
*.png -text diff
|
||||
*.svgz -text diff
|
||||
*.ttf -text diff
|
||||
*.woff -text diff
|
||||
*.woff2 -text diff
|
65
web/.ht.router.php
Normal file
65
web/.ht.router.php
Normal file
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Router script for the built-in PHP web server.
|
||||
*
|
||||
* The built-in web server should only be used for development and testing as it
|
||||
* has a number of limitations that makes running Drupal on it highly insecure
|
||||
* and somewhat limited.
|
||||
*
|
||||
* Note that:
|
||||
* - The server is single-threaded, any requests made during the execution of
|
||||
* the main request will hang until the main request has been completed.
|
||||
* - The web server does not enforce any of the settings in .htaccess in
|
||||
* particular a remote user will be able to download files that normally would
|
||||
* be protected from direct access such as .module files.
|
||||
*
|
||||
* The router script is needed to work around a bug in PHP, see
|
||||
* https://bugs.php.net/bug.php?id=61286.
|
||||
*
|
||||
* Usage:
|
||||
* php -S localhost:8888 .ht.router.php
|
||||
*
|
||||
* @see http://php.net/manual/en/features.commandline.webserver.php
|
||||
*/
|
||||
|
||||
$url = parse_url($_SERVER['REQUEST_URI']);
|
||||
if (file_exists(__DIR__ . $url['path'])) {
|
||||
// Serve the requested resource as-is.
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Work around the PHP bug.
|
||||
$path = $url['path'];
|
||||
$script = 'index.php';
|
||||
if (strpos($path, '.php') !== FALSE) {
|
||||
// Work backwards through the path to check if a script exists. Otherwise
|
||||
// fallback to index.php.
|
||||
do {
|
||||
$path = dirname($path);
|
||||
if (preg_match('/\.php$/', $path) && is_file(__DIR__ . $path)) {
|
||||
// Discovered that the path contains an existing PHP file. Use that as the
|
||||
// script to include.
|
||||
$script = ltrim($path, '/');
|
||||
break;
|
||||
}
|
||||
} while ($path !== '/' && $path !== '.');
|
||||
}
|
||||
|
||||
// Update $_SERVER variables to point to the correct index-file.
|
||||
$index_file_absolute = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . $script;
|
||||
$index_file_relative = DIRECTORY_SEPARATOR . $script;
|
||||
|
||||
// SCRIPT_FILENAME will point to the router script itself, it should point to
|
||||
// the full path of index.php.
|
||||
$_SERVER['SCRIPT_FILENAME'] = $index_file_absolute;
|
||||
|
||||
// SCRIPT_NAME and PHP_SELF will either point to index.php or contain the full
|
||||
// virtual path being requested depending on the URL being requested. They
|
||||
// should always point to index.php relative to document root.
|
||||
$_SERVER['SCRIPT_NAME'] = $index_file_relative;
|
||||
$_SERVER['PHP_SELF'] = $index_file_relative;
|
||||
|
||||
// Require the script and let core take over.
|
||||
require $_SERVER['SCRIPT_FILENAME'];
|
189
web/.htaccess
Normal file
189
web/.htaccess
Normal file
|
@ -0,0 +1,189 @@
|
|||
#
|
||||
# Apache/PHP/Drupal settings:
|
||||
#
|
||||
|
||||
# Protect files and directories from prying eyes.
|
||||
<FilesMatch "\.(engine|inc|install|make|module|profile|po|sh|.*sql|theme|twig|tpl(\.php)?|xtmpl|yml)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\.(?!well-known).*|Entries.*|Repository|Root|Tag|Template|composer\.(json|lock))$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig|\.save)$">
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order allow,deny
|
||||
</IfModule>
|
||||
</FilesMatch>
|
||||
|
||||
# Don't show directory listings for URLs which map to a directory.
|
||||
Options -Indexes
|
||||
|
||||
# Set the default handler.
|
||||
DirectoryIndex index.php index.html index.htm
|
||||
|
||||
# Add correct encoding for SVGZ.
|
||||
AddType image/svg+xml svg svgz
|
||||
AddEncoding gzip svgz
|
||||
|
||||
# Most of the following PHP settings cannot be changed at runtime. See
|
||||
# sites/default/default.settings.php and
|
||||
# Drupal\Core\DrupalKernel::bootEnvironment() for settings that can be
|
||||
# changed at runtime.
|
||||
|
||||
# PHP 5, Apache 1 and 2.
|
||||
<IfModule mod_php5.c>
|
||||
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 mbstring.encoding_translation off
|
||||
# PHP 5.6 has deprecated $HTTP_RAW_POST_DATA and produces warnings if this is
|
||||
# not set.
|
||||
php_value always_populate_raw_post_data -1
|
||||
</IfModule>
|
||||
|
||||
# Requires mod_expires to be enabled.
|
||||
<IfModule mod_expires.c>
|
||||
# Enable expirations.
|
||||
ExpiresActive On
|
||||
|
||||
# Cache all files for 2 weeks after access (A).
|
||||
ExpiresDefault A1209600
|
||||
|
||||
<FilesMatch \.php$>
|
||||
# Do not allow PHP scripts to be cached unless they explicitly send cache
|
||||
# headers themselves. Otherwise all scripts would have to overwrite the
|
||||
# headers set by mod_expires if they want another caching behavior. This may
|
||||
# fail if an error occurs early in the bootstrap process, and it may cause
|
||||
# problems if a non-Drupal PHP file is installed in a subdirectory.
|
||||
ExpiresActive Off
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
|
||||
# Set a fallback resource if mod_rewrite is not enabled. This allows Drupal to
|
||||
# work without clean URLs. This requires Apache version >= 2.2.16. If Drupal is
|
||||
# not accessed by the top level URL (i.e.: http://example.com/drupal/ instead of
|
||||
# http://example.com/), the path to index.php will need to be adjusted.
|
||||
<IfModule !mod_rewrite.c>
|
||||
FallbackResource /index.php
|
||||
</IfModule>
|
||||
|
||||
# Various rewrite rules.
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine on
|
||||
|
||||
# Set "protossl" to "s" if we were accessed via https://. This is used later
|
||||
# if you enable "www." stripping or enforcement, in order to ensure that
|
||||
# you don't bounce between http and https.
|
||||
RewriteRule ^ - [E=protossl]
|
||||
RewriteCond %{HTTPS} on
|
||||
RewriteRule ^ - [E=protossl:s]
|
||||
|
||||
# Make sure Authorization HTTP header is available to PHP
|
||||
# even when running as CGI or FastCGI.
|
||||
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
|
||||
# Block access to "hidden" directories whose names begin with a period. This
|
||||
# includes directories used by version control systems such as Subversion or
|
||||
# Git to store control files. Files whose names begin with a period, as well
|
||||
# as the control files used by CVS, are protected by the FilesMatch directive
|
||||
# above.
|
||||
#
|
||||
# NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite, it is
|
||||
# not possible to block access to entire directories from .htaccess because
|
||||
# <DirectoryMatch> is not allowed here.
|
||||
#
|
||||
# If you do not have mod_rewrite installed, you should remove these
|
||||
# directories from your webroot or otherwise protect them from being
|
||||
# downloaded.
|
||||
RewriteRule "/\.|^\.(?!well-known/)" - [F]
|
||||
|
||||
# If your site can be accessed both with and without the 'www.' prefix, you
|
||||
# can use one of the following settings to redirect users to your preferred
|
||||
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
|
||||
#
|
||||
# To redirect all users to access the site WITH the 'www.' prefix,
|
||||
# (http://example.com/foo will be redirected to http://www.example.com/foo)
|
||||
# uncomment the following:
|
||||
# RewriteCond %{HTTP_HOST} .
|
||||
# RewriteCond %{HTTP_HOST} !^www\. [NC]
|
||||
# RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
|
||||
#
|
||||
# To redirect all users to access the site WITHOUT the 'www.' prefix,
|
||||
# (http://www.example.com/foo will be redirected to http://example.com/foo)
|
||||
# uncomment the following:
|
||||
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
|
||||
# RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
|
||||
|
||||
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
|
||||
# VirtualDocumentRoot and the rewrite rules are not working properly.
|
||||
# For example if your site is at http://example.com/drupal uncomment and
|
||||
# modify the following line:
|
||||
# RewriteBase /drupal
|
||||
#
|
||||
# If your site is running in a VirtualDocumentRoot at http://example.com/,
|
||||
# uncomment the following line:
|
||||
# RewriteBase /
|
||||
|
||||
# Redirect common PHP files to their new locations.
|
||||
RewriteCond %{REQUEST_URI} ^(.*)?/(install.php) [OR]
|
||||
RewriteCond %{REQUEST_URI} ^(.*)?/(rebuild.php)
|
||||
RewriteCond %{REQUEST_URI} !core
|
||||
RewriteRule ^ %1/core/%2 [L,QSA,R=301]
|
||||
|
||||
# Rewrite install.php during installation to see if mod_rewrite is working
|
||||
RewriteRule ^core/install.php core/install.php?rewrite=ok [QSA,L]
|
||||
|
||||
# Pass all requests not referring directly to files in the filesystem to
|
||||
# index.php.
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_URI} !=/favicon.ico
|
||||
RewriteRule ^ index.php [L]
|
||||
|
||||
# For security reasons, deny access to other PHP files on public sites.
|
||||
# Note: The following URI conditions are not anchored at the start (^),
|
||||
# because Drupal may be located in a subdirectory. To further improve
|
||||
# security, you can replace '!/' with '!^/'.
|
||||
# Allow access to PHP files in /core (like authorize.php or install.php):
|
||||
RewriteCond %{REQUEST_URI} !/core/[^/]*\.php$
|
||||
# Allow access to test-specific PHP files:
|
||||
RewriteCond %{REQUEST_URI} !/core/modules/system/tests/https?.php
|
||||
# Allow access to Statistics module's custom front controller.
|
||||
# Copy and adapt this rule to directly execute PHP files in contributed or
|
||||
# custom modules or to run another PHP application in the same directory.
|
||||
RewriteCond %{REQUEST_URI} !/core/modules/statistics/statistics.php$
|
||||
# Deny access to any other PHP files that do not match the rules above.
|
||||
# Specifically, disallow autoload.php from being served directly.
|
||||
RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F]
|
||||
|
||||
# Rules to correctly serve gzip compressed CSS and JS files.
|
||||
# Requires both mod_rewrite and mod_headers to be enabled.
|
||||
<IfModule mod_headers.c>
|
||||
# Serve gzip compressed CSS files if they exist and the client accepts 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>
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
# 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>
|
61
web/robots.txt
Normal file
61
web/robots.txt
Normal file
|
@ -0,0 +1,61 @@
|
|||
#
|
||||
# robots.txt
|
||||
#
|
||||
# This file is to prevent the crawling and indexing of certain parts
|
||||
# of your site by web crawlers and spiders run by sites like Yahoo!
|
||||
# and Google. By telling these "robots" where not to go on your site,
|
||||
# you save bandwidth and server resources.
|
||||
#
|
||||
# This file will be ignored unless it is at the root of your host:
|
||||
# Used: http://example.com/robots.txt
|
||||
# Ignored: http://example.com/site/robots.txt
|
||||
#
|
||||
# For more information about the robots.txt standard, see:
|
||||
# http://www.robotstxt.org/robotstxt.html
|
||||
|
||||
User-agent: *
|
||||
# CSS, JS, Images
|
||||
Allow: /core/*.css$
|
||||
Allow: /core/*.css?
|
||||
Allow: /core/*.js$
|
||||
Allow: /core/*.js?
|
||||
Allow: /core/*.gif
|
||||
Allow: /core/*.jpg
|
||||
Allow: /core/*.jpeg
|
||||
Allow: /core/*.png
|
||||
Allow: /core/*.svg
|
||||
Allow: /profiles/*.css$
|
||||
Allow: /profiles/*.css?
|
||||
Allow: /profiles/*.js$
|
||||
Allow: /profiles/*.js?
|
||||
Allow: /profiles/*.gif
|
||||
Allow: /profiles/*.jpg
|
||||
Allow: /profiles/*.jpeg
|
||||
Allow: /profiles/*.png
|
||||
Allow: /profiles/*.svg
|
||||
# Directories
|
||||
Disallow: /core/
|
||||
Disallow: /profiles/
|
||||
# Files
|
||||
Disallow: /README.txt
|
||||
Disallow: /web.config
|
||||
# Paths (clean URLs)
|
||||
Disallow: /admin/
|
||||
Disallow: /comment/reply/
|
||||
Disallow: /filter/tips
|
||||
Disallow: /node/add/
|
||||
Disallow: /search/
|
||||
Disallow: /user/register/
|
||||
Disallow: /user/password/
|
||||
Disallow: /user/login/
|
||||
Disallow: /user/logout/
|
||||
# Paths (no clean URLs)
|
||||
Disallow: /index.php/admin/
|
||||
Disallow: /index.php/comment/reply/
|
||||
Disallow: /index.php/filter/tips
|
||||
Disallow: /index.php/node/add/
|
||||
Disallow: /index.php/search/
|
||||
Disallow: /index.php/user/password/
|
||||
Disallow: /index.php/user/register/
|
||||
Disallow: /index.php/user/login/
|
||||
Disallow: /index.php/user/logout/
|
103
web/web.config
Normal file
103
web/web.config
Normal file
|
@ -0,0 +1,103 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<!-- Don't show directory listings for URLs which map to a directory. -->
|
||||
<directoryBrowse enabled="false" />
|
||||
|
||||
<!--
|
||||
Caching configuration was not delegated by default. Some hosters may not
|
||||
delegate the caching configuration to site owners by default and that
|
||||
may cause errors when users install. Uncomment this if you want to and
|
||||
are allowed to enable caching.
|
||||
-->
|
||||
<!--
|
||||
<caching>
|
||||
<profiles>
|
||||
<add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" />
|
||||
<add extension=".html" policy="CacheForTimePeriod" kernelCachePolicy="CacheForTimePeriod" duration="14:00:00" />
|
||||
</profiles>
|
||||
</caching>
|
||||
-->
|
||||
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="Protect files and directories from prying eyes" stopProcessing="true">
|
||||
<match url="\.(engine|inc|install|module|profile|po|sh|.*sql|theme|twig|tpl(\.php)?|xtmpl|yml|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format|composer\.(json|lock))$" />
|
||||
<action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="Forbidden" statusDescription="Access is forbidden." />
|
||||
</rule>
|
||||
|
||||
<rule name="Force simple error message for requests for non-existent favicon.ico" stopProcessing="true">
|
||||
<match url="favicon\.ico" />
|
||||
<action type="CustomResponse" statusCode="404" subStatusCode="1" statusReason="File Not Found" statusDescription="The requested file favicon.ico was not found" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||
</conditions>
|
||||
</rule>
|
||||
<!-- If running on a PHP version affected by httpoxy vulnerability
|
||||
uncomment the following rule to mitigate it's impact. To make this
|
||||
rule work, you will also need to add HTTP_PROXY to the allowed server
|
||||
variables manually in IIS. See https://www.drupal.org/node/2783079.
|
||||
<rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">
|
||||
<match url="*.*" />
|
||||
<serverVariables>
|
||||
<set name="HTTP_PROXY" value="" />
|
||||
</serverVariables>
|
||||
<action type="None" />
|
||||
</rule>
|
||||
-->
|
||||
<!-- To redirect all users to access the site WITH the 'www.' prefix,
|
||||
http://example.com/foo will be redirected to http://www.example.com/foo)
|
||||
adapt and uncomment the following: -->
|
||||
<!--
|
||||
<rule name="Redirect to add www" stopProcessing="true">
|
||||
<match url="^(.*)$" ignoreCase="false" />
|
||||
<conditions>
|
||||
<add input="{HTTP_HOST}" pattern="^example\.com$" />
|
||||
</conditions>
|
||||
<action type="Redirect" redirectType="Permanent" url="http://www.example.com/{R:1}" />
|
||||
</rule>
|
||||
-->
|
||||
|
||||
<!-- To redirect all users to access the site WITHOUT the 'www.' prefix,
|
||||
http://www.example.com/foo will be redirected to http://example.com/foo)
|
||||
adapt and uncomment the following: -->
|
||||
<!--
|
||||
<rule name="Redirect to remove www" stopProcessing="true">
|
||||
<match url="^(.*)$" ignoreCase="false" />
|
||||
<conditions>
|
||||
<add input="{HTTP_HOST}" pattern="^www\.example\.com$" />
|
||||
</conditions>
|
||||
<action type="Redirect" redirectType="Permanent" url="http://example.com/{R:1}" />
|
||||
</rule>
|
||||
-->
|
||||
|
||||
<!-- Pass all requests not referring directly to files in the filesystem
|
||||
to index.php. -->
|
||||
<rule name="Short URLS" stopProcessing="true">
|
||||
<match url="^(.*)$" ignoreCase="false" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
|
||||
<add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="index.php" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
|
||||
<!-- If running Windows Server 2008 R2 this can be commented out -->
|
||||
<!-- httpErrors>
|
||||
<remove statusCode="404" subStatusCode="-1" />
|
||||
<error statusCode="404" prefixLanguageFilePath="" path="/index.php" responseMode="ExecuteURL" />
|
||||
</httpErrors -->
|
||||
|
||||
<defaultDocument>
|
||||
<!-- Set the default document -->
|
||||
<files>
|
||||
<clear />
|
||||
<add value="index.php" />
|
||||
</files>
|
||||
</defaultDocument>
|
||||
|
||||
</system.webServer>
|
||||
</configuration>
|
Loading…
Add table
Reference in a new issue