aboutsummaryrefslogtreecommitdiffhomepage
path: root/main/webserver-configs
diff options
context:
space:
mode:
authormarvin-borner@live.com2018-04-16 21:09:05 +0200
committermarvin-borner@live.com2018-04-16 21:09:05 +0200
commitcf14306c2b3f82a81f8d56669a71633b4d4b5fce (patch)
tree86700651aa180026e89a66064b0364b1e4346f3f /main/webserver-configs
parent619b01b3615458c4ed78bfaeabb6b1a47cc8ad8b (diff)
Main merge to user management system - files are now at /main/public/
Diffstat (limited to 'main/webserver-configs')
-rwxr-xr-xmain/webserver-configs/htaccess.txt185
-rwxr-xr-xmain/webserver-configs/nginx.conf127
-rwxr-xr-xmain/webserver-configs/web.config92
3 files changed, 404 insertions, 0 deletions
diff --git a/main/webserver-configs/htaccess.txt b/main/webserver-configs/htaccess.txt
new file mode 100755
index 0000000..8abe84a
--- /dev/null
+++ b/main/webserver-configs/htaccess.txt
@@ -0,0 +1,185 @@
+# Enable this line to temporarily disable the Apache rewrite cache.
+#Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
+
+# Tell PHP that we are using Apache
+SetEnv SERVER_TYPE Apache
+
+<IfModule mod_rewrite.c>
+
+ # Tell PHP that the mod_rewrite module is ENABLED.
+ SetEnv HTTP_MOD_REWRITE On
+
+ RewriteEngine On
+
+ # Uncomment the next two lines to forward all HTTP to HTTPS
+ #RewriteCond %{HTTPS} !=on
+ #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
+
+ # Forward all www. to non-www. Remove this rule if you want both available.
+ RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
+ RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
+
+ # Remove trailing slash from any non-directory path (canonicalization) - GET requests only
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_METHOD} =GET
+ RewriteCond %{REQUEST_URI} (.+)/$
+ RewriteRule ^ %1 [L,R=301]
+
+ # Dynamically rewrite base directory (see http://stackoverflow.com/questions/31062479/301-redirect-urls-that-are-also-being-rewritten)
+ RewriteCond $0#%{REQUEST_URI} ^([^#]*)#(.*)\1$
+ RewriteRule ^.*$ - [E=BASE:%2]
+
+ # Forward any requested URLs that specifically contain index.php (see http://stackoverflow.com/questions/31062479/301-redirect-urls-that-are-also-being-rewritten)
+ RewriteCond %{THE_REQUEST} /index\.php [NC]
+ RewriteRule ^index\.php(?:/(.*))?$ %{ENV:BASE}$1 [L,R=301,NC,NE]
+
+ # Send the URI to index.php (Slim routing)
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^ index.php [QSA,L]
+
+</IfModule>
+
+# Deny access to any php.ini files
+<Files php.ini>
+ Order allow,deny
+ Deny from all
+</Files>
+
+# Gzip Compression
+<IfModule mod_deflate.c>
+ # Force compression for mangled headers.
+ # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
+ <IfModule mod_setenvif.c>
+ <IfModule mod_headers.c>
+ SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
+ RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
+ </IfModule>
+ </IfModule>
+
+ # Compress all output labeled with one of the following MIME-types
+ # (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
+ # and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines
+ # as `AddOutputFilterByType` is still in the core directives).
+
+ <IfModule mod_filter.c>
+ AddOutputFilterByType DEFLATE application/atom+xml \
+ application/javascript \
+ application/json \
+ application/rss+xml \
+ application/vnd.ms-fontobject \
+ application/x-font-ttf \
+ application/x-web-app-manifest+json \
+ application/xhtml+xml \
+ application/xml \
+ font/opentype \
+ image/svg+xml \
+ image/x-icon \
+ text/css \
+ text/html \
+ text/plain \
+ text/x-component \
+ text/xml
+ </IfModule>
+
+</IfModule>
+
+# ----------------------------------------------------------------------
+# | Expires headers - enable this if you want browsers to cache content |
+# ----------------------------------------------------------------------
+
+# Serve resources with far-future expires headers.
+#
+# (!) If you don't control versioning with filename-based
+# cache busting, you should consider lowering the cache times
+# to something like one week.
+#
+# https://httpd.apache.org/docs/current/mod/mod_expires.html
+
+#<IfModule mod_expires.c>
+#
+# ExpiresActive on
+# ExpiresDefault "access plus 1 month"
+#
+# # CSS
+#
+# ExpiresByType text/css "access plus 1 hour"
+#
+#
+# # Data interchange
+#
+# ExpiresByType application/atom+xml "access plus 1 hour"
+# ExpiresByType application/rdf+xml "access plus 1 hour"
+# ExpiresByType application/rss+xml "access plus 1 hour"
+#
+# ExpiresByType application/json "access plus 0 seconds"
+# ExpiresByType application/ld+json "access plus 0 seconds"
+# ExpiresByType application/schema+json "access plus 0 seconds"
+# ExpiresByType application/vnd.geo+json "access plus 0 seconds"
+# ExpiresByType application/xml "access plus 0 seconds"
+# ExpiresByType text/xml "access plus 0 seconds"
+#
+#
+# # Favicon (cannot be renamed!) and cursor images
+#
+# ExpiresByType image/vnd.microsoft.icon "access plus 1 week"
+# ExpiresByType image/x-icon "access plus 1 week"
+#
+# # HTML
+#
+# ExpiresByType text/html "access plus 0 seconds"
+#
+#
+# # JavaScript
+#
+# ExpiresByType application/javascript "access plus 1 hour"
+# ExpiresByType application/x-javascript "access plus 1 hour"
+# ExpiresByType text/javascript "access plus 1 hour"
+#
+#
+# # Manifest files
+#
+# ExpiresByType application/manifest+json "access plus 1 week"
+# ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
+# ExpiresByType text/cache-manifest "access plus 0 seconds"
+#
+#
+# # Media files
+#
+# ExpiresByType audio/ogg "access plus 1 month"
+# ExpiresByType image/bmp "access plus 1 month"
+# ExpiresByType image/gif "access plus 1 month"
+# ExpiresByType image/jpeg "access plus 1 month"
+# ExpiresByType image/png "access plus 1 month"
+# ExpiresByType image/svg+xml "access plus 1 month"
+# ExpiresByType image/webp "access plus 1 month"
+# ExpiresByType video/mp4 "access plus 1 month"
+# ExpiresByType video/ogg "access plus 1 month"
+# ExpiresByType video/webm "access plus 1 month"
+#
+#
+# # Web fonts
+#
+# # Embedded OpenType (EOT)
+# ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
+# ExpiresByType font/eot "access plus 1 month"
+#
+# # OpenType
+# ExpiresByType font/opentype "access plus 1 month"
+#
+# # TrueType
+# ExpiresByType application/x-font-ttf "access plus 1 month"
+#
+# # Web Open Font Format (WOFF) 1.0
+# ExpiresByType application/font-woff "access plus 1 month"
+# ExpiresByType application/x-font-woff "access plus 1 month"
+# ExpiresByType font/woff "access plus 1 month"
+#
+# # Web Open Font Format (WOFF) 2.0
+# ExpiresByType application/font-woff2 "access plus 1 month"
+#
+#
+# # Other
+#
+# ExpiresByType text/x-cross-domain-policy "access plus 1 week"
+#
+#</IfModule>
diff --git a/main/webserver-configs/nginx.conf b/main/webserver-configs/nginx.conf
new file mode 100755
index 0000000..354c683
--- /dev/null
+++ b/main/webserver-configs/nginx.conf
@@ -0,0 +1,127 @@
+## UserFrosting sample nginx configuration file.
+## See https://learn.userfrosting.com/going-live/vps-production-environment/application-setup#configure-the-webserver-nginx-
+
+## Redirect HTTP to HTTPS
+## Enable this block once you've set up SSL. This will redirect all HTTP requests to HTTPS.
+#server {
+# listen 80;
+# server_name example.com;
+# return 301 https://$host$request_uri;
+#}
+
+## Main server configuration
+server {
+ ## Non-SSL configuration. Not recommended for production!
+ listen 80;
+ ## Defines the script/file to look for when a request is made to the index of your server name.
+ index index.php index.html index.htm;
+
+ ## Begin - Server Info
+ ## Document root directory for your project. Should be set to the directory that contains your index.php.
+ root /usr/share/nginx/project/public;
+ server_name example.com;
+ ## End - Server Info
+
+ ## SSL configuration
+ ## It is STRONGLY RECOMMENDED that you use SSL for all traffic to your UF site.
+ ## Otherwise, you are potentially leaking your users' sensitive info, including passwords!
+ ## See https://letsencrypt.org/ to find out how to get a free, trusted SSL cert for your site.
+ #
+ #listen 443 ssl http2;
+ #listen [::]:443 ssl http2;
+ ## Certificate paths (example for letsencrypt)
+ #ssl_certificate /etc/letsencrypt/live/<cert name>/fullchain.pem;
+ #ssl_certificate_key /etc/letsencrypt/live/<cert name>/privkey.pem;
+ ## Disable SSLv3(enabled by default since nginx 0.8.19) since it's less secure then TLS http://en.wikipedia.org/wiki/Secure_Sockets_Layer#SSL_3.0
+ #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+ ## Enable session resumption to enable low latency for repeat visitors.
+ #ssl_session_cache shared:SSL:50m;
+ #ssl_session_timeout 5m;
+ ## Enables server-side protection from BEAST attacks
+ #ssl_prefer_server_ciphers on;
+ ## Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
+ #ssl_dhparam /etc/nginx/dhparam.pem; # google will tell you how to make this
+ ## Ciphers chosen for forward secrecy and compatibility
+ #ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
+ ## Enable ocsp stapling (mechanism by which a site can convey certificate revocation information to visitors in a privacy-preserving, scalable manner)
+ #resolver 8.8.8.8;
+ #ssl_stapling on;
+ #ssl_trusted_certificate /etc/letsencrypt/live/<cert name>/fullchain.pem; # same as your ssl_certificate path
+ ## Config to enable HSTS(HTTP Strict Transport Security) https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
+ #add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
+ ## End - SSL configuration
+
+ access_log /var/log/nginx/access.log;
+
+ add_header X-Frame-Options SAMEORIGIN;
+ add_header X-Content-Type-Options nosniff;
+ ## This header enables the Cross-site scripting (XSS) filter built into most recent web browsers.
+ add_header X-XSS-Protection "1; mode=block"; #optional
+
+ ## Begin - Pagespeed
+ ## See https://learn.userfrosting.com/going-live/vps-production-environment/additional-recommendations
+ ## for information on compiling nginx with the Pagespeed module.
+ #pagespeed on;
+ #pagespeed FileCachePath /var/ngx_pagespeed_cache;
+ #pagespeed Disallow "*.svg*";
+ ## Add additional filters here
+ #pagespeed EnableFilters prioritize_critical_css;
+ ## Ensure requests for pagespeed optimized resources go to the pagespeed
+ ## handler and no extraneous headers get set.
+ #location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
+ #location ~ "^/ngx_pagespeed_static/" { }
+ #location ~ "^/ngx_pagespeed_beacon" { }
+ ## End - Pagespeed
+
+ ## Begin - Let's Encrypt
+ ## Allow URLs for certbot acme challenge
+ location ~ /.well-known {
+ allow all;
+ }
+ ## End - Let's Encrypt
+
+ ## Begin - Handle PHP requests
+ location ~ \.(php)$ {
+ # Throw away any requests to execute PHP scripts in other directories
+ # See http://cnedelcu.blogspot.com/2010/05/nginx-php-via-fastcgi-important.html for why this is needed
+ location ~ \..*/.*\.php$ {
+ return 404;
+ }
+ # regex to split $uri to $fastcgi_script_name and $fastcgi_path
+ fastcgi_split_path_info ^(.+\.php)(/.+)$;
+ fastcgi_keep_conn on;
+ # For FPM (PHP 7)
+ fastcgi_pass unix:/run/php/php7.0-fpm.sock;
+ # For FPM (PHP 5.x)
+ #fastcgi_pass unix:/var/run/php5-fpm.sock;
+ # For traditional PHP FastCGI (php5-cgi or php7.0-cgi)
+ #fastcgi_pass 127.0.0.1:9000;
+ # For HHVM
+ #fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
+ fastcgi_index index.php;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ include fastcgi_params;
+ }
+ ## End - Handle PHP requests
+
+ ## Begin - Caching static files
+ location ~* \.(png|gif|jpg|jpeg|svg|ico|css|js|woff|ttf|otf|woff2|eot)$ {
+ include /etc/nginx/mime.types;
+ expires max;
+
+ index index.php;
+ try_files $uri $uri/ /index.php?$query_string;
+ }
+ ## End - Caching static files
+
+ ## Begin - Index
+ ## for subfolders, simply adjust:
+ ## `location /subfolder {`
+ ## and the rewrite to use `/subfolder/index.php`
+ location / {
+ include /etc/nginx/mime.types;
+ index index.php;
+ try_files $uri $uri/ /index.php?$query_string;
+ }
+ ## End - Index
+}
diff --git a/main/webserver-configs/web.config b/main/webserver-configs/web.config
new file mode 100755
index 0000000..96b3a00
--- /dev/null
+++ b/main/webserver-configs/web.config
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Unlike apache and *ngix, IIS will likely require additional configuration that cannot be safely defined, or defined at all in a web.config file.
+ If odd behaviour occurs:
+ 1. Ensure web.config settings are being applied, as IIS can be configured to ignore specific web.config settings.
+ 2. If there is an IIS error page, try the suggested solutions.
+ 3. See if anyone on the web has encountered the same issue, and try the suggested solutions.
+ 4. And as a last resort, ask in the UserFrosting chat support channel. http://chat.userfrosting.com -->
+<configuration>
+ <system.webServer>
+ <!-- Most default installs of PHP in IIS only accept GET and POST HTTP verbs.
+ If using the account functionality of UserFrosting, additional HTTP verbs will need to be added to the PHP handler.
+ Specifically, PUT and DELETE are required.
+ Sample PHP handler definition follows.
+ <handlers>
+ <add name="PHP_via_FastCGI" path="*.php" verb="GET,POST,PUT,DELETE" modules="FastCgiModule" scriptProcessor="path/to/php/directory/php-cgi.exe" resourceType="Either" />
+ </handlers>-->
+ <rewrite>
+ <!-- Rules to clean url, and ensure requests are handled by PHP when appropriate. -->
+ <rules>
+ <!-- Clear any inherited rules -->
+ <clear />
+ <!-- Dynamically rewrite base directory to remove index.php from url. -->
+ <rule name="Remove .../index.php/... from url">
+ <match url="^index\.php/(.*)$" />
+ <action type="Redirect" redirectType="Permanent" url="{R:1}" />
+ </rule>
+ <!-- Remove trailing slash from any non-directory path (canonicalization) - GET requests only. -->
+ <rule name="Remove trailing slash">
+ <match url="(.*)/$" />
+ <conditions>
+ <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
+ </conditions>
+ <action type="Redirect" redirectType="Permanent" url="{R:1}" />
+ </rule>
+ <!-- Send the URI to index.php (Slim routing) if url maps to neither a directory, or file. -->
+ <rule name="Rewrite to index.php" stopProcessing="true">
+ <match url=".*" />
+ <conditions>
+ <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
+ <add input="{REQUEST_FILEDIR}" matchType="IsDirectory" negate="true" />
+ </conditions>
+ <action type="Rewrite" url="index.php" />
+ </rule>
+ </rules>
+ </rewrite>
+ <!-- Set index.php as default document, and clear inherited defaults. -->
+ <defaultDocument enabled="true">
+ <files>
+ <clear />
+ <add value="index.php" />
+ </files>
+ </defaultDocument>
+ <!-- Whitelist specific static file types -->
+ <staticContent>
+ <!-- Clear inherited rules -->
+ <clear />
+ <!-- Set content expiration time (31 days for every static file listed) -->
+ <!--<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="31.00:00:00" />-->
+ <!-- Atom feeds -->
+ <mimeMap fileExtension=".atom" mimeType="application/atom+xml" />
+ <mimeMap fileExtension=".xml" mimeType="application/atom+xml, application/rss+xml, application/xhtml+xml, application/xml, text/xml" />
+ <!-- JS -->
+ <mimeMap fileExtension=".js" mimeType="application/js" />
+ <!-- JSON -->
+ <mimeMap fileExtension=".json" mimeType="application/json" />
+ <!-- EOT font -->
+ <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
+ <!-- TTF fonts -->
+ <mimeMap fileExtension=".ttf" mimeType="application/x-font-ttf" />
+ <!-- Web App Manifest -->
+ <mimeMap fileExtension=".webapp" mimeType="application/x-web-app-manifest+json" />
+ <!-- XHTML -->
+ <mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" />
+ <mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" />
+ <mimeMap fileExtension=".html" mimeType="application/xhtml+xml" />
+ <mimeMap fileExtension=".htm" mimeType="application/xhtml+xml" />
+ <!-- Images -->
+ <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
+ <mimeMap fileExtension=".png" mimeType="image/png" />
+ <mimeMap fileExtension=".ico" mimeType="image/x-icon" />
+ <!-- WOFF/2 fonts -->
+ <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
+ <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
+ <!-- CSS -->
+ <mimeMap fileExtension=".css" mimeType="text/css" />
+ <!-- Plain text -->
+ <mimeMap fileExtension=".txt" mimeType="text/plain" />
+ <!-- HTML Component -->
+ <mimeMap fileExtension=".htc" mimeType="text/x-component" />
+ </staticContent>
+ </system.webServer>
+</configuration> \ No newline at end of file