@@ -0,0 +1,13 @@ |
||
1 |
+# editorconfig.org |
|
2 |
+ |
|
3 |
+root = true |
|
4 |
+ |
|
5 |
+[*] |
|
6 |
+charset = utf-8 |
|
7 |
+indent_size = 4 |
|
8 |
+indent_style = space |
|
9 |
+insert_final_newline = true |
|
10 |
+trim_trailing_whitespace = true |
|
11 |
+ |
|
12 |
+[*.md] |
|
13 |
+trim_trailing_whitespace = false |
@@ -0,0 +1 @@ |
||
1 |
+* text=auto |
@@ -0,0 +1,4 @@ |
||
1 |
+# Include your project-specific ignores in this file |
|
2 |
+# Read about how to use .gitignore: https://help.github.com/articles/ignoring-files |
|
3 |
+ |
|
4 |
+.DS_Store |
@@ -0,0 +1,935 @@ |
||
1 |
+# Apache Server Configs v2.11.0 | MIT License |
|
2 |
+# https://github.com/h5bp/server-configs-apache |
|
3 |
+ |
|
4 |
+# (!) Using `.htaccess` files slows down Apache, therefore, if you have |
|
5 |
+# access to the main server configuration file (which is usually called |
|
6 |
+# `httpd.conf`), you should add this logic there. |
|
7 |
+# |
|
8 |
+# https://httpd.apache.org/docs/current/howto/htaccess.html. |
|
9 |
+ |
|
10 |
+# ###################################################################### |
|
11 |
+# # CROSS-ORIGIN # |
|
12 |
+# ###################################################################### |
|
13 |
+ |
|
14 |
+# ---------------------------------------------------------------------- |
|
15 |
+# | Cross-origin requests | |
|
16 |
+# ---------------------------------------------------------------------- |
|
17 |
+ |
|
18 |
+# Allow cross-origin requests. |
|
19 |
+# |
|
20 |
+# https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS |
|
21 |
+# http://enable-cors.org/ |
|
22 |
+# http://www.w3.org/TR/cors/ |
|
23 |
+ |
|
24 |
+# <IfModule mod_headers.c> |
|
25 |
+# Header set Access-Control-Allow-Origin "*" |
|
26 |
+# </IfModule> |
|
27 |
+ |
|
28 |
+# ---------------------------------------------------------------------- |
|
29 |
+# | Cross-origin images | |
|
30 |
+# ---------------------------------------------------------------------- |
|
31 |
+ |
|
32 |
+# Send the CORS header for images when browsers request it. |
|
33 |
+# |
|
34 |
+# https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image |
|
35 |
+# https://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html |
|
36 |
+ |
|
37 |
+<IfModule mod_setenvif.c> |
|
38 |
+ <IfModule mod_headers.c> |
|
39 |
+ <FilesMatch "\.(bmp|cur|gif|ico|jpe?g|png|svgz?|webp)$"> |
|
40 |
+ SetEnvIf Origin ":" IS_CORS |
|
41 |
+ Header set Access-Control-Allow-Origin "*" env=IS_CORS |
|
42 |
+ </FilesMatch> |
|
43 |
+ </IfModule> |
|
44 |
+</IfModule> |
|
45 |
+ |
|
46 |
+# ---------------------------------------------------------------------- |
|
47 |
+# | Cross-origin web fonts | |
|
48 |
+# ---------------------------------------------------------------------- |
|
49 |
+ |
|
50 |
+# Allow cross-origin access to web fonts. |
|
51 |
+ |
|
52 |
+<IfModule mod_headers.c> |
|
53 |
+ <FilesMatch "\.(eot|otf|tt[cf]|woff2?)$"> |
|
54 |
+ Header set Access-Control-Allow-Origin "*" |
|
55 |
+ </FilesMatch> |
|
56 |
+</IfModule> |
|
57 |
+ |
|
58 |
+# ---------------------------------------------------------------------- |
|
59 |
+# | Cross-origin resource timing | |
|
60 |
+# ---------------------------------------------------------------------- |
|
61 |
+ |
|
62 |
+# Allow cross-origin access to the timing information for all resources. |
|
63 |
+# |
|
64 |
+# If a resource isn't served with a `Timing-Allow-Origin` header that |
|
65 |
+# would allow its timing information to be shared with the document, |
|
66 |
+# some of the attributes of the `PerformanceResourceTiming` object will |
|
67 |
+# be set to zero. |
|
68 |
+# |
|
69 |
+# http://www.w3.org/TR/resource-timing/ |
|
70 |
+# http://www.stevesouders.com/blog/2014/08/21/resource-timing-practical-tips/ |
|
71 |
+ |
|
72 |
+# <IfModule mod_headers.c> |
|
73 |
+# Header set Timing-Allow-Origin: "*" |
|
74 |
+# </IfModule> |
|
75 |
+ |
|
76 |
+ |
|
77 |
+# ###################################################################### |
|
78 |
+# # ERRORS # |
|
79 |
+# ###################################################################### |
|
80 |
+ |
|
81 |
+# ---------------------------------------------------------------------- |
|
82 |
+# | Custom error messages/pages | |
|
83 |
+# ---------------------------------------------------------------------- |
|
84 |
+ |
|
85 |
+# Customize what Apache returns to the client in case of an error. |
|
86 |
+# https://httpd.apache.org/docs/current/mod/core.html#errordocument |
|
87 |
+ |
|
88 |
+ErrorDocument 404 /404.html |
|
89 |
+ |
|
90 |
+# ---------------------------------------------------------------------- |
|
91 |
+# | Error prevention | |
|
92 |
+# ---------------------------------------------------------------------- |
|
93 |
+ |
|
94 |
+# Disable the pattern matching based on filenames. |
|
95 |
+# |
|
96 |
+# This setting prevents Apache from returning a 404 error as the result |
|
97 |
+# of a rewrite when the directory with the same name does not exist. |
|
98 |
+# |
|
99 |
+# https://httpd.apache.org/docs/current/content-negotiation.html#multiviews |
|
100 |
+ |
|
101 |
+Options -MultiViews |
|
102 |
+ |
|
103 |
+ |
|
104 |
+# ###################################################################### |
|
105 |
+# # INTERNET EXPLORER # |
|
106 |
+# ###################################################################### |
|
107 |
+ |
|
108 |
+# ---------------------------------------------------------------------- |
|
109 |
+# | Document modes | |
|
110 |
+# ---------------------------------------------------------------------- |
|
111 |
+ |
|
112 |
+# Force Internet Explorer 8/9/10 to render pages in the highest mode |
|
113 |
+# available in the various cases when it may not. |
|
114 |
+# |
|
115 |
+# https://hsivonen.fi/doctype/#ie8 |
|
116 |
+# |
|
117 |
+# (!) Starting with Internet Explorer 11, document modes are deprecated. |
|
118 |
+# If your business still relies on older web apps and services that were |
|
119 |
+# designed for older versions of Internet Explorer, you might want to |
|
120 |
+# consider enabling `Enterprise Mode` throughout your company. |
|
121 |
+# |
|
122 |
+# http://msdn.microsoft.com/en-us/library/ie/bg182625.aspx#docmode |
|
123 |
+# http://blogs.msdn.com/b/ie/archive/2014/04/02/stay-up-to-date-with-enterprise-mode-for-internet-explorer-11.aspx |
|
124 |
+ |
|
125 |
+<IfModule mod_headers.c> |
|
126 |
+ Header set X-UA-Compatible "IE=edge" |
|
127 |
+ # `mod_headers` cannot match based on the content-type, however, |
|
128 |
+ # the `X-UA-Compatible` response header should be send only for |
|
129 |
+ # HTML documents and not for the other resources. |
|
130 |
+ <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|woff2?|xloc|xml|xpi)$"> |
|
131 |
+ Header unset X-UA-Compatible |
|
132 |
+ </FilesMatch> |
|
133 |
+</IfModule> |
|
134 |
+ |
|
135 |
+# ---------------------------------------------------------------------- |
|
136 |
+# | Iframes cookies | |
|
137 |
+# ---------------------------------------------------------------------- |
|
138 |
+ |
|
139 |
+# Allow cookies to be set from iframes in Internet Explorer. |
|
140 |
+# |
|
141 |
+# http://msdn.microsoft.com/en-us/library/ms537343.aspx |
|
142 |
+# http://www.w3.org/TR/2000/CR-P3P-20001215/ |
|
143 |
+ |
|
144 |
+# <IfModule mod_headers.c> |
|
145 |
+# Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"" |
|
146 |
+# </IfModule> |
|
147 |
+ |
|
148 |
+ |
|
149 |
+# ###################################################################### |
|
150 |
+# # MEDIA TYPES AND CHARACTER ENCODINGS # |
|
151 |
+# ###################################################################### |
|
152 |
+ |
|
153 |
+# ---------------------------------------------------------------------- |
|
154 |
+# | Media types | |
|
155 |
+# ---------------------------------------------------------------------- |
|
156 |
+ |
|
157 |
+# Serve resources with the proper media types (f.k.a. MIME types). |
|
158 |
+# |
|
159 |
+# https://www.iana.org/assignments/media-types/media-types.xhtml |
|
160 |
+# https://httpd.apache.org/docs/current/mod/mod_mime.html#addtype |
|
161 |
+ |
|
162 |
+<IfModule mod_mime.c> |
|
163 |
+ |
|
164 |
+ # Data interchange |
|
165 |
+ |
|
166 |
+ AddType application/json json map topojson |
|
167 |
+ AddType application/ld+json jsonld |
|
168 |
+ AddType application/vnd.geo+json geojson |
|
169 |
+ AddType application/xml atom rdf rss xml |
|
170 |
+ |
|
171 |
+ |
|
172 |
+ # JavaScript |
|
173 |
+ |
|
174 |
+ # Normalize to standard type. |
|
175 |
+ # https://tools.ietf.org/html/rfc4329#section-7.2 |
|
176 |
+ |
|
177 |
+ AddType application/javascript js |
|
178 |
+ |
|
179 |
+ |
|
180 |
+ # Manifest files |
|
181 |
+ |
|
182 |
+ # If you are providing a web application manifest file (see |
|
183 |
+ # the specification: https://w3c.github.io/manifest/), it is |
|
184 |
+ # recommended that you serve it with the `application/manifest+json` |
|
185 |
+ # media type. |
|
186 |
+ # |
|
187 |
+ # Because the web application manifest file doesn't have its |
|
188 |
+ # own unique file extension, you can set its media type either |
|
189 |
+ # by matching: |
|
190 |
+ # |
|
191 |
+ # 1) the exact location of the file (this can be done using a |
|
192 |
+ # directive such as `<Location>`, but it will NOT work in |
|
193 |
+ # the `.htaccess` file, so you will have to do it in the main |
|
194 |
+ # server configuration file or inside of a `<VirtualHost>` |
|
195 |
+ # container) |
|
196 |
+ # |
|
197 |
+ # e.g.: |
|
198 |
+ # |
|
199 |
+ # <Location "/.well-known/manifest.json"> |
|
200 |
+ # AddType application/manifest+json json |
|
201 |
+ # </Location> |
|
202 |
+ # |
|
203 |
+ # 2) the filename (this can be problematic as you will need to |
|
204 |
+ # ensure that you don't have any other file with the same name |
|
205 |
+ # as the one you gave to your web application manifest file) |
|
206 |
+ # |
|
207 |
+ # e.g.: |
|
208 |
+ # |
|
209 |
+ # <Files "manifest.json"> |
|
210 |
+ # AddType application/manifest+json json |
|
211 |
+ # </Files> |
|
212 |
+ |
|
213 |
+ AddType application/x-web-app-manifest+json webapp |
|
214 |
+ AddType text/cache-manifest appcache manifest |
|
215 |
+ |
|
216 |
+ |
|
217 |
+ # Media files |
|
218 |
+ |
|
219 |
+ AddType audio/mp4 f4a f4b m4a |
|
220 |
+ AddType audio/ogg oga ogg opus |
|
221 |
+ AddType image/bmp bmp |
|
222 |
+ AddType image/webp webp |
|
223 |
+ AddType video/mp4 f4v f4p m4v mp4 |
|
224 |
+ AddType video/ogg ogv |
|
225 |
+ AddType video/webm webm |
|
226 |
+ AddType video/x-flv flv |
|
227 |
+ AddType image/svg+xml svg svgz |
|
228 |
+ |
|
229 |
+ # Serving `.ico` image files with a different media type |
|
230 |
+ # prevents Internet Explorer from displaying then as images: |
|
231 |
+ # https://github.com/h5bp/html5-boilerplate/commit/37b5fec090d00f38de64b591bcddcb205aadf8ee |
|
232 |
+ |
|
233 |
+ AddType image/x-icon cur ico |
|
234 |
+ |
|
235 |
+ |
|
236 |
+ # Web fonts |
|
237 |
+ |
|
238 |
+ AddType application/font-woff woff |
|
239 |
+ AddType application/font-woff2 woff2 |
|
240 |
+ AddType application/vnd.ms-fontobject eot |
|
241 |
+ |
|
242 |
+ # Browsers usually ignore the font media types and simply sniff |
|
243 |
+ # the bytes to figure out the font type. |
|
244 |
+ # https://mimesniff.spec.whatwg.org/#matching-a-font-type-pattern |
|
245 |
+ # |
|
246 |
+ # However, Blink and WebKit based browsers will show a warning |
|
247 |
+ # in the console if the following font types are served with any |
|
248 |
+ # other media types. |
|
249 |
+ |
|
250 |
+ AddType application/x-font-ttf ttc ttf |
|
251 |
+ AddType font/opentype otf |
|
252 |
+ |
|
253 |
+ |
|
254 |
+ # Other |
|
255 |
+ |
|
256 |
+ AddType application/octet-stream safariextz |
|
257 |
+ AddType application/x-bb-appworld bbaw |
|
258 |
+ AddType application/x-chrome-extension crx |
|
259 |
+ AddType application/x-opera-extension oex |
|
260 |
+ AddType application/x-xpinstall xpi |
|
261 |
+ AddType text/vcard vcard vcf |
|
262 |
+ AddType text/vnd.rim.location.xloc xloc |
|
263 |
+ AddType text/vtt vtt |
|
264 |
+ AddType text/x-component htc |
|
265 |
+ |
|
266 |
+</IfModule> |
|
267 |
+ |
|
268 |
+# ---------------------------------------------------------------------- |
|
269 |
+# | Character encodings | |
|
270 |
+# ---------------------------------------------------------------------- |
|
271 |
+ |
|
272 |
+# Serve all resources labeled as `text/html` or `text/plain` |
|
273 |
+# with the media type `charset` parameter set to `UTF-8`. |
|
274 |
+# |
|
275 |
+# https://httpd.apache.org/docs/current/mod/core.html#adddefaultcharset |
|
276 |
+ |
|
277 |
+AddDefaultCharset utf-8 |
|
278 |
+ |
|
279 |
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
280 |
+ |
|
281 |
+# Serve the following file types with the media type `charset` |
|
282 |
+# parameter set to `UTF-8`. |
|
283 |
+# |
|
284 |
+# https://httpd.apache.org/docs/current/mod/mod_mime.html#addcharset |
|
285 |
+ |
|
286 |
+<IfModule mod_mime.c> |
|
287 |
+ AddCharset utf-8 .atom \ |
|
288 |
+ .bbaw \ |
|
289 |
+ .css \ |
|
290 |
+ .geojson \ |
|
291 |
+ .js \ |
|
292 |
+ .json \ |
|
293 |
+ .jsonld \ |
|
294 |
+ .rdf \ |
|
295 |
+ .rss \ |
|
296 |
+ .topojson \ |
|
297 |
+ .vtt \ |
|
298 |
+ .webapp \ |
|
299 |
+ .xloc \ |
|
300 |
+ .xml |
|
301 |
+</IfModule> |
|
302 |
+ |
|
303 |
+ |
|
304 |
+# ###################################################################### |
|
305 |
+# # REWRITES # |
|
306 |
+# ###################################################################### |
|
307 |
+ |
|
308 |
+# ---------------------------------------------------------------------- |
|
309 |
+# | Rewrite engine | |
|
310 |
+# ---------------------------------------------------------------------- |
|
311 |
+ |
|
312 |
+# (1) Turn on the rewrite engine (this is necessary in order for |
|
313 |
+# the `RewriteRule` directives to work). |
|
314 |
+# |
|
315 |
+# https://httpd.apache.org/docs/current/mod/mod_rewrite.html#RewriteEngine |
|
316 |
+# |
|
317 |
+# (2) Enable the `FollowSymLinks` option if it isn't already. |
|
318 |
+# |
|
319 |
+# https://httpd.apache.org/docs/current/mod/core.html#options |
|
320 |
+# |
|
321 |
+# (3) If your web host doesn't allow the `FollowSymlinks` option, |
|
322 |
+# you need to comment it out or remove it, and then uncomment |
|
323 |
+# the `Options +SymLinksIfOwnerMatch` line (4), but be aware |
|
324 |
+# of the performance impact. |
|
325 |
+# |
|
326 |
+# https://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks |
|
327 |
+# |
|
328 |
+# (4) Some cloud hosting services will require you set `RewriteBase`. |
|
329 |
+# |
|
330 |
+# http://www.rackspace.com/knowledge_center/frequently-asked-question/why-is-modrewrite-not-working-on-my-site |
|
331 |
+# https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase |
|
332 |
+# |
|
333 |
+# (5) Depending on how your server is set up, you may also need to |
|
334 |
+# use the `RewriteOptions` directive to enable some options for |
|
335 |
+# the rewrite engine. |
|
336 |
+# |
|
337 |
+# https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions |
|
338 |
+ |
|
339 |
+<IfModule mod_rewrite.c> |
|
340 |
+ |
|
341 |
+ # (1) |
|
342 |
+ RewriteEngine On |
|
343 |
+ |
|
344 |
+ # (2) |
|
345 |
+ Options +FollowSymlinks |
|
346 |
+ |
|
347 |
+ # (3) |
|
348 |
+ # Options +SymLinksIfOwnerMatch |
|
349 |
+ |
|
350 |
+ # (4) |
|
351 |
+ # RewriteBase / |
|
352 |
+ |
|
353 |
+ # (5) |
|
354 |
+ # RewriteOptions <options> |
|
355 |
+ |
|
356 |
+</IfModule> |
|
357 |
+ |
|
358 |
+# ---------------------------------------------------------------------- |
|
359 |
+# | Forcing `https://` | |
|
360 |
+# ---------------------------------------------------------------------- |
|
361 |
+ |
|
362 |
+# Redirect from the `http://` to the `https://` version of the URL. |
|
363 |
+# https://wiki.apache.org/httpd/RewriteHTTPToHTTPS |
|
364 |
+ |
|
365 |
+# <IfModule mod_rewrite.c> |
|
366 |
+# RewriteEngine On |
|
367 |
+# RewriteCond %{HTTPS} !=on |
|
368 |
+# RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] |
|
369 |
+# </IfModule> |
|
370 |
+ |
|
371 |
+# ---------------------------------------------------------------------- |
|
372 |
+# | Suppressing / Forcing the `www.` at the beginning of URLs | |
|
373 |
+# ---------------------------------------------------------------------- |
|
374 |
+ |
|
375 |
+# The same content should never be available under two different |
|
376 |
+# URLs, especially not with and without `www.` at the beginning. |
|
377 |
+# This can cause SEO problems (duplicate content), and therefore, |
|
378 |
+# you should choose one of the alternatives and redirect the other |
|
379 |
+# one. |
|
380 |
+# |
|
381 |
+# By default `Option 1` (no `www.`) is activated. |
|
382 |
+# http://no-www.org/faq.php?q=class_b |
|
383 |
+# |
|
384 |
+# If you would prefer to use `Option 2`, just comment out all the |
|
385 |
+# lines from `Option 1` and uncomment the ones from `Option 2`. |
|
386 |
+# |
|
387 |
+# (!) NEVER USE BOTH RULES AT THE SAME TIME! |
|
388 |
+ |
|
389 |
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
390 |
+ |
|
391 |
+# Option 1: rewrite www.example.com → example.com |
|
392 |
+ |
|
393 |
+<IfModule mod_rewrite.c> |
|
394 |
+ RewriteEngine On |
|
395 |
+ RewriteCond %{HTTPS} !=on |
|
396 |
+ RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] |
|
397 |
+ RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] |
|
398 |
+</IfModule> |
|
399 |
+ |
|
400 |
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
401 |
+ |
|
402 |
+# Option 2: rewrite example.com → www.example.com |
|
403 |
+# |
|
404 |
+# Be aware that the following might not be a good idea if you use "real" |
|
405 |
+# subdomains for certain parts of your website. |
|
406 |
+ |
|
407 |
+# <IfModule mod_rewrite.c> |
|
408 |
+# RewriteEngine On |
|
409 |
+# RewriteCond %{HTTPS} !=on |
|
410 |
+# RewriteCond %{HTTP_HOST} !^www\. [NC] |
|
411 |
+# RewriteCond %{SERVER_ADDR} !=127.0.0.1 |
|
412 |
+# RewriteCond %{SERVER_ADDR} !=::1 |
|
413 |
+# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
|
414 |
+# </IfModule> |
|
415 |
+ |
|
416 |
+ |
|
417 |
+# ###################################################################### |
|
418 |
+# # SECURITY # |
|
419 |
+# ###################################################################### |
|
420 |
+ |
|
421 |
+# ---------------------------------------------------------------------- |
|
422 |
+# | Clickjacking | |
|
423 |
+# ---------------------------------------------------------------------- |
|
424 |
+ |
|
425 |
+# Protect website against clickjacking. |
|
426 |
+# |
|
427 |
+# The example below sends the `X-Frame-Options` response header with |
|
428 |
+# the value `DENY`, informing browsers not to display the content of |
|
429 |
+# the web page in any frame. |
|
430 |
+# |
|
431 |
+# This might not be the best setting for everyone. You should read |
|
432 |
+# about the other two possible values the `X-Frame-Options` header |
|
433 |
+# field can have: `SAMEORIGIN` and `ALLOW-FROM`. |
|
434 |
+# https://tools.ietf.org/html/rfc7034#section-2.1. |
|
435 |
+# |
|
436 |
+# Keep in mind that while you could send the `X-Frame-Options` header |
|
437 |
+# for all of your website’s pages, this has the potential downside that |
|
438 |
+# it forbids even non-malicious framing of your content (e.g.: when |
|
439 |
+# users visit your website using a Google Image Search results page). |
|
440 |
+# |
|
441 |
+# Nonetheless, you should ensure that you send the `X-Frame-Options` |
|
442 |
+# header for all pages that allow a user to make a state changing |
|
443 |
+# operation (e.g: pages that contain one-click purchase links, checkout |
|
444 |
+# or bank-transfer confirmation pages, pages that make permanent |
|
445 |
+# configuration changes, etc.). |
|
446 |
+# |
|
447 |
+# Sending the `X-Frame-Options` header can also protect your website |
|
448 |
+# against more than just clickjacking attacks: |
|
449 |
+# https://cure53.de/xfo-clickjacking.pdf. |
|
450 |
+# |
|
451 |
+# https://tools.ietf.org/html/rfc7034 |
|
452 |
+# http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx |
|
453 |
+# https://www.owasp.org/index.php/Clickjacking |
|
454 |
+ |
|
455 |
+# <IfModule mod_headers.c> |
|
456 |
+# Header set X-Frame-Options "DENY" |
|
457 |
+# # `mod_headers` cannot match based on the content-type, however, |
|
458 |
+# # the `X-Frame-Options` response header should be send only for |
|
459 |
+# # HTML documents and not for the other resources. |
|
460 |
+# <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|woff2?|xloc|xml|xpi)$"> |
|
461 |
+# Header unset X-Frame-Options |
|
462 |
+# </FilesMatch> |
|
463 |
+# </IfModule> |
|
464 |
+ |
|
465 |
+# ---------------------------------------------------------------------- |
|
466 |
+# | Content Security Policy (CSP) | |
|
467 |
+# ---------------------------------------------------------------------- |
|
468 |
+ |
|
469 |
+# Mitigate the risk of cross-site scripting and other content-injection |
|
470 |
+# attacks. |
|
471 |
+# |
|
472 |
+# This can be done by setting a `Content Security Policy` which |
|
473 |
+# whitelists trusted sources of content for your website. |
|
474 |
+# |
|
475 |
+# The example header below allows ONLY scripts that are loaded from the |
|
476 |
+# current website's origin (no inline scripts, no CDN, etc). That almost |
|
477 |
+# certainly won't work as-is for your website! |
|
478 |
+# |
|
479 |
+# For more details on how to craft a reasonable policy for your website, |
|
480 |
+# read: http://www.html5rocks.com/en/tutorials/security/content-security-policy/ |
|
481 |
+# (or the specification: http://www.w3.org/TR/CSP11/). Also, to make |
|
482 |
+# things easier, you can use an online CSP header generator such as: |
|
483 |
+# http://cspisawesome.com/. |
|
484 |
+ |
|
485 |
+# <IfModule mod_headers.c> |
|
486 |
+# Header set Content-Security-Policy "script-src 'self'; object-src 'self'" |
|
487 |
+# # `mod_headers` cannot match based on the content-type, however, |
|
488 |
+# # the `Content-Security-Policy` response header should be send |
|
489 |
+# # only for HTML documents and not for the other resources. |
|
490 |
+# <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|woff2?|xloc|xml|xpi)$"> |
|
491 |
+# Header unset Content-Security-Policy |
|
492 |
+# </FilesMatch> |
|
493 |
+# </IfModule> |
|
494 |
+ |
|
495 |
+# ---------------------------------------------------------------------- |
|
496 |
+# | File access | |
|
497 |
+# ---------------------------------------------------------------------- |
|
498 |
+ |
|
499 |
+# Block access to directories without a default document. |
|
500 |
+# |
|
501 |
+# You should leave the following uncommented, as you shouldn't allow |
|
502 |
+# anyone to surf through every directory on your server (which may |
|
503 |
+# includes rather private places such as the CMS's directories). |
|
504 |
+ |
|
505 |
+<IfModule mod_autoindex.c> |
|
506 |
+ Options -Indexes |
|
507 |
+</IfModule> |
|
508 |
+ |
|
509 |
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
510 |
+ |
|
511 |
+# Block access to all hidden files and directories with the exception of |
|
512 |
+# the visible content from within the `/.well-known/` hidden directory. |
|
513 |
+# |
|
514 |
+# These types of files usually contain user preferences or the preserved |
|
515 |
+# state of an utility, and can include rather private places like, for |
|
516 |
+# example, the `.git` or `.svn` directories. |
|
517 |
+# |
|
518 |
+# The `/.well-known/` directory represents the standard (RFC 5785) path |
|
519 |
+# prefix for "well-known locations" (e.g.: `/.well-known/manifest.json`, |
|
520 |
+# `/.well-known/keybase.txt`), and therefore, access to its visible |
|
521 |
+# content should not be blocked. |
|
522 |
+# |
|
523 |
+# https://www.mnot.net/blog/2010/04/07/well-known |
|
524 |
+# https://tools.ietf.org/html/rfc5785 |
|
525 |
+ |
|
526 |
+<IfModule mod_rewrite.c> |
|
527 |
+ RewriteEngine On |
|
528 |
+ RewriteCond %{REQUEST_URI} "!(^|/)\.well-known/([^./]+./?)+$" [NC] |
|
529 |
+ RewriteCond %{SCRIPT_FILENAME} -d [OR] |
|
530 |
+ RewriteCond %{SCRIPT_FILENAME} -f |
|
531 |
+ RewriteRule "(^|/)\." - [F] |
|
532 |
+</IfModule> |
|
533 |
+ |
|
534 |
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
535 |
+ |
|
536 |
+# Block access to files that can expose sensitive information. |
|
537 |
+# |
|
538 |
+# By default, block access to backup and source files that may be |
|
539 |
+# left by some text editors and can pose a security risk when anyone |
|
540 |
+# has access to them. |
|
541 |
+# |
|
542 |
+# http://feross.org/cmsploit/ |
|
543 |
+# |
|
544 |
+# (!) Update the `<FilesMatch>` regular expression from below to |
|
545 |
+# include any files that might end up on your production server and |
|
546 |
+# can expose sensitive information about your website. These files may |
|
547 |
+# include: configuration files, files that contain metadata about the |
|
548 |
+# project (e.g.: project dependencies), build scripts, etc.. |
|
549 |
+ |
|
550 |
+<FilesMatch "(^#.*#|\.(bak|conf|dist|fla|in[ci]|log|psd|sh|sql|sw[op])|~)$"> |
|
551 |
+ |
|
552 |
+ # Apache < 2.3 |
|
553 |
+ <IfModule !mod_authz_core.c> |
|
554 |
+ Order allow,deny |
|
555 |
+ Deny from all |
|
556 |
+ Satisfy All |
|
557 |
+ </IfModule> |
|
558 |
+ |
|
559 |
+ # Apache ≥ 2.3 |
|
560 |
+ <IfModule mod_authz_core.c> |
|
561 |
+ Require all denied |
|
562 |
+ </IfModule> |
|
563 |
+ |
|
564 |
+</FilesMatch> |
|
565 |
+ |
|
566 |
+# ---------------------------------------------------------------------- |
|
567 |
+# | HTTP Strict Transport Security (HSTS) | |
|
568 |
+# ---------------------------------------------------------------------- |
|
569 |
+ |
|
570 |
+# Force client-side SSL redirection. |
|
571 |
+# |
|
572 |
+# If a user types `example.com` in their browser, even if the server |
|
573 |
+# redirects them to the secure version of the website, that still leaves |
|
574 |
+# a window of opportunity (the initial HTTP connection) for an attacker |
|
575 |
+# to downgrade or redirect the request. |
|
576 |
+# |
|
577 |
+# The following header ensures that browser will ONLY connect to your |
|
578 |
+# server via HTTPS, regardless of what the users type in the browser's |
|
579 |
+# address bar. |
|
580 |
+# |
|
581 |
+# (!) Remove the `includeSubDomains` optional directive if the website's |
|
582 |
+# subdomains are not using HTTPS. |
|
583 |
+# |
|
584 |
+# http://www.html5rocks.com/en/tutorials/security/transport-layer-security/ |
|
585 |
+# https://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14#section-6.1 |
|
586 |
+# http://blogs.msdn.com/b/ieinternals/archive/2014/08/18/hsts-strict-transport-security-attacks-mitigations-deployment-https.aspx |
|
587 |
+ |
|
588 |
+# <IfModule mod_headers.c> |
|
589 |
+# Header set Strict-Transport-Security "max-age=16070400; includeSubDomains" |
|
590 |
+# </IfModule> |
|
591 |
+ |
|
592 |
+# ---------------------------------------------------------------------- |
|
593 |
+# | Reducing MIME type security risks | |
|
594 |
+# ---------------------------------------------------------------------- |
|
595 |
+ |
|
596 |
+# Prevent some browsers from MIME-sniffing the response. |
|
597 |
+# |
|
598 |
+# This reduces exposure to drive-by download attacks and cross-origin |
|
599 |
+# data leaks, and should be left uncommented, especially if the server |
|
600 |
+# is serving user-uploaded content or content that could potentially be |
|
601 |
+# treated as executable by the browser. |
|
602 |
+# |
|
603 |
+# http://www.slideshare.net/hasegawayosuke/owasp-hasegawa |
|
604 |
+# http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx |
|
605 |
+# http://msdn.microsoft.com/en-us/library/ie/gg622941.aspx |
|
606 |
+# https://mimesniff.spec.whatwg.org/ |
|
607 |
+ |
|
608 |
+<IfModule mod_headers.c> |
|
609 |
+ Header set X-Content-Type-Options "nosniff" |
|
610 |
+</IfModule> |
|
611 |
+ |
|
612 |
+# ---------------------------------------------------------------------- |
|
613 |
+# | Reflected Cross-Site Scripting (XSS) attacks | |
|
614 |
+# ---------------------------------------------------------------------- |
|
615 |
+ |
|
616 |
+# (1) Try to re-enable the cross-site scripting (XSS) filter built |
|
617 |
+# into most web browsers. |
|
618 |
+# |
|
619 |
+# The filter is usually enabled by default, but in some cases it |
|
620 |
+# may be disabled by the user. However, in Internet Explorer for |
|
621 |
+# example, it can be re-enabled just by sending the |
|
622 |
+# `X-XSS-Protection` header with the value of `1`. |
|
623 |
+# |
|
624 |
+# (2) Prevent web browsers from rendering the web page if a potential |
|
625 |
+# reflected (a.k.a non-persistent) XSS attack is detected by the |
|
626 |
+# filter. |
|
627 |
+# |
|
628 |
+# By default, if the filter is enabled and browsers detect a |
|
629 |
+# reflected XSS attack, they will attempt to block the attack |
|
630 |
+# by making the smallest possible modifications to the returned |
|
631 |
+# web page. |
|
632 |
+# |
|
633 |
+# Unfortunately, in some browsers (e.g.: Internet Explorer), |
|
634 |
+# this default behavior may allow the XSS filter to be exploited, |
|
635 |
+# thereby, it's better to inform browsers to prevent the rendering |
|
636 |
+# of the page altogether, instead of attempting to modify it. |
|
637 |
+# |
|
638 |
+# http://hackademix.net/2009/11/21/ies-xss-filter-creates-xss-vulnerabilities |
|
639 |
+# |
|
640 |
+# (!) Do not rely on the XSS filter to prevent XSS attacks! Ensure that |
|
641 |
+# you are taking all possible measures to prevent XSS attacks, the |
|
642 |
+# most obvious being: validating and sanitizing your website's inputs. |
|
643 |
+# |
|
644 |
+# http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx |
|
645 |
+# http://blogs.msdn.com/b/ieinternals/archive/2011/01/31/controlling-the-internet-explorer-xss-filter-with-the-x-xss-protection-http-header.aspx |
|
646 |
+# https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29 |
|
647 |
+ |
|
648 |
+# <IfModule mod_headers.c> |
|
649 |
+# # (1) (2) |
|
650 |
+# Header set X-XSS-Protection "1; mode=block" |
|
651 |
+# # `mod_headers` cannot match based on the content-type, however, |
|
652 |
+# # the `X-XSS-Protection` response header should be send only for |
|
653 |
+# # HTML documents and not for the other resources. |
|
654 |
+# <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|woff2?|xloc|xml|xpi)$"> |
|
655 |
+# Header unset X-XSS-Protection |
|
656 |
+# </FilesMatch> |
|
657 |
+# </IfModule> |
|
658 |
+ |
|
659 |
+# ---------------------------------------------------------------------- |
|
660 |
+# | Server software information | |
|
661 |
+# ---------------------------------------------------------------------- |
|
662 |
+ |
|
663 |
+# Prevent Apache from sending in the `Server` response header its |
|
664 |
+# exact version number, the description of the generic OS-type or |
|
665 |
+# information about its compiled-in modules. |
|
666 |
+# |
|
667 |
+# (!) The `ServerTokens` directive will only work in the main server |
|
668 |
+# configuration file, so don't try to enable it in the `.htaccess` file! |
|
669 |
+# |
|
670 |
+# https://httpd.apache.org/docs/current/mod/core.html#servertokens |
|
671 |
+ |
|
672 |
+# ServerTokens Prod |
|
673 |
+ |
|
674 |
+ |
|
675 |
+# ###################################################################### |
|
676 |
+# # WEB PERFORMANCE # |
|
677 |
+# ###################################################################### |
|
678 |
+ |
|
679 |
+# ---------------------------------------------------------------------- |
|
680 |
+# | Compression | |
|
681 |
+# ---------------------------------------------------------------------- |
|
682 |
+ |
|
683 |
+<IfModule mod_deflate.c> |
|
684 |
+ |
|
685 |
+ # Force compression for mangled `Accept-Encoding` request headers |
|
686 |
+ # https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html |
|
687 |
+ |
|
688 |
+ <IfModule mod_setenvif.c> |
|
689 |
+ <IfModule mod_headers.c> |
|
690 |
+ SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding |
|
691 |
+ RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding |
|
692 |
+ </IfModule> |
|
693 |
+ </IfModule> |
|
694 |
+ |
|
695 |
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
696 |
+ |
|
697 |
+ # Compress all output labeled with one of the following media types. |
|
698 |
+ # |
|
699 |
+ # (!) For Apache versions below version 2.3.7 you don't need to |
|
700 |
+ # enable `mod_filter` and can remove the `<IfModule mod_filter.c>` |
|
701 |
+ # and `</IfModule>` lines as `AddOutputFilterByType` is still in |
|
702 |
+ # the core directives. |
|
703 |
+ # |
|
704 |
+ # https://httpd.apache.org/docs/current/mod/mod_filter.html#addoutputfilterbytype |
|
705 |
+ |
|
706 |
+ <IfModule mod_filter.c> |
|
707 |
+ AddOutputFilterByType DEFLATE "application/atom+xml" \ |
|
708 |
+ "application/javascript" \ |
|
709 |
+ "application/json" \ |
|
710 |
+ "application/ld+json" \ |
|
711 |
+ "application/manifest+json" \ |
|
712 |
+ "application/rdf+xml" \ |
|
713 |
+ "application/rss+xml" \ |
|
714 |
+ "application/schema+json" \ |
|
715 |
+ "application/vnd.geo+json" \ |
|
716 |
+ "application/vnd.ms-fontobject" \ |
|
717 |
+ "application/x-font-ttf" \ |
|
718 |
+ "application/x-javascript" \ |
|
719 |
+ "application/x-web-app-manifest+json" \ |
|
720 |
+ "application/xhtml+xml" \ |
|
721 |
+ "application/xml" \ |
|
722 |
+ "font/eot" \ |
|
723 |
+ "font/opentype" \ |
|
724 |
+ "image/bmp" \ |
|
725 |
+ "image/svg+xml" \ |
|
726 |
+ "image/vnd.microsoft.icon" \ |
|
727 |
+ "image/x-icon" \ |
|
728 |
+ "text/cache-manifest" \ |
|
729 |
+ "text/css" \ |
|
730 |
+ "text/html" \ |
|
731 |
+ "text/javascript" \ |
|
732 |
+ "text/plain" \ |
|
733 |
+ "text/vcard" \ |
|
734 |
+ "text/vnd.rim.location.xloc" \ |
|
735 |
+ "text/vtt" \ |
|
736 |
+ "text/x-component" \ |
|
737 |
+ "text/x-cross-domain-policy" \ |
|
738 |
+ "text/xml" |
|
739 |
+ |
|
740 |
+ </IfModule> |
|
741 |
+ |
|
742 |
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
743 |
+ |
|
744 |
+ # Map the following filename extensions to the specified |
|
745 |
+ # encoding type in order to make Apache serve the file types |
|
746 |
+ # with the appropriate `Content-Encoding` response header |
|
747 |
+ # (do note that this will NOT make Apache compress them!). |
|
748 |
+ # |
|
749 |
+ # If these files types would be served without an appropriate |
|
750 |
+ # `Content-Enable` response header, client applications (e.g.: |
|
751 |
+ # browsers) wouldn't know that they first need to uncompress |
|
752 |
+ # the response, and thus, wouldn't be able to understand the |
|
753 |
+ # content. |
|
754 |
+ # |
|
755 |
+ # https://httpd.apache.org/docs/current/mod/mod_mime.html#addencoding |
|
756 |
+ |
|
757 |
+ <IfModule mod_mime.c> |
|
758 |
+ AddEncoding gzip svgz |
|
759 |
+ </IfModule> |
|
760 |
+ |
|
761 |
+</IfModule> |
|
762 |
+ |
|
763 |
+# ---------------------------------------------------------------------- |
|
764 |
+# | Content transformation | |
|
765 |
+# ---------------------------------------------------------------------- |
|
766 |
+ |
|
767 |
+# Prevent intermediate caches or proxies (e.g.: such as the ones |
|
768 |
+# used by mobile network providers) from modifying the website's |
|
769 |
+# content. |
|
770 |
+# |
|
771 |
+# https://tools.ietf.org/html/rfc2616#section-14.9.5 |
|
772 |
+# |
|
773 |
+# (!) If you are using `mod_pagespeed`, please note that setting |
|
774 |
+# the `Cache-Control: no-transform` response header will prevent |
|
775 |
+# `PageSpeed` from rewriting `HTML` files, and, if the |
|
776 |
+# `ModPagespeedDisableRewriteOnNoTransform` directive isn't set |
|
777 |
+# to `off`, also from rewriting other resources. |
|
778 |
+# |
|
779 |
+# https://developers.google.com/speed/pagespeed/module/configuration#notransform |
|
780 |
+ |
|
781 |
+# <IfModule mod_headers.c> |
|
782 |
+# Header merge Cache-Control "no-transform" |
|
783 |
+# </IfModule> |
|
784 |
+ |
|
785 |
+# ---------------------------------------------------------------------- |
|
786 |
+# | ETags | |
|
787 |
+# ---------------------------------------------------------------------- |
|
788 |
+ |
|
789 |
+# Remove `ETags` as resources are sent with far-future expires headers. |
|
790 |
+# |
|
791 |
+# https://developer.yahoo.com/performance/rules.html#etags |
|
792 |
+# https://tools.ietf.org/html/rfc7232#section-2.3 |
|
793 |
+ |
|
794 |
+# `FileETag None` doesn't work in all cases. |
|
795 |
+<IfModule mod_headers.c> |
|
796 |
+ Header unset ETag |
|
797 |
+</IfModule> |
|
798 |
+ |
|
799 |
+FileETag None |
|
800 |
+ |
|
801 |
+# ---------------------------------------------------------------------- |
|
802 |
+# | Expires headers | |
|
803 |
+# ---------------------------------------------------------------------- |
|
804 |
+ |
|
805 |
+# Serve resources with far-future expires headers. |
|
806 |
+# |
|
807 |
+# (!) If you don't control versioning with filename-based |
|
808 |
+# cache busting, you should consider lowering the cache times |
|
809 |
+# to something like one week. |
|
810 |
+# |
|
811 |
+# https://httpd.apache.org/docs/current/mod/mod_expires.html |
|
812 |
+ |
|
813 |
+<IfModule mod_expires.c> |
|
814 |
+ |
|
815 |
+ ExpiresActive on |
|
816 |
+ ExpiresDefault "access plus 1 month" |
|
817 |
+ |
|
818 |
+ # CSS |
|
819 |
+ ExpiresByType text/css "access plus 1 year" |
|
820 |
+ |
|
821 |
+ # Data interchange |
|
822 |
+ ExpiresByType application/atom+xml "access plus 1 hour" |
|
823 |
+ ExpiresByType application/rdf+xml "access plus 1 hour" |
|
824 |
+ ExpiresByType application/rss+xml "access plus 1 hour" |
|
825 |
+ |
|
826 |
+ ExpiresByType application/json "access plus 0 seconds" |
|
827 |
+ ExpiresByType application/ld+json "access plus 0 seconds" |
|
828 |
+ ExpiresByType application/schema+json "access plus 0 seconds" |
|
829 |
+ ExpiresByType application/vnd.geo+json "access plus 0 seconds" |
|
830 |
+ ExpiresByType application/xml "access plus 0 seconds" |
|
831 |
+ ExpiresByType text/xml "access plus 0 seconds" |
|
832 |
+ |
|
833 |
+ # Favicon (cannot be renamed!) and cursor images |
|
834 |
+ ExpiresByType image/vnd.microsoft.icon "access plus 1 week" |
|
835 |
+ ExpiresByType image/x-icon "access plus 1 week" |
|
836 |
+ |
|
837 |
+ # HTML |
|
838 |
+ ExpiresByType text/html "access plus 0 seconds" |
|
839 |
+ |
|
840 |
+ # JavaScript |
|
841 |
+ ExpiresByType application/javascript "access plus 1 year" |
|
842 |
+ ExpiresByType application/x-javascript "access plus 1 year" |
|
843 |
+ ExpiresByType text/javascript "access plus 1 year" |
|
844 |
+ |
|
845 |
+ # Manifest files |
|
846 |
+ ExpiresByType application/manifest+json "access plus 1 year" |
|
847 |
+ |
|
848 |
+ ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" |
|
849 |
+ ExpiresByType text/cache-manifest "access plus 0 seconds" |
|
850 |
+ |
|
851 |
+ # Media files |
|
852 |
+ ExpiresByType audio/ogg "access plus 1 month" |
|
853 |
+ ExpiresByType image/bmp "access plus 1 month" |
|
854 |
+ ExpiresByType image/gif "access plus 1 month" |
|
855 |
+ ExpiresByType image/jpeg "access plus 1 month" |
|
856 |
+ ExpiresByType image/png "access plus 1 month" |
|
857 |
+ ExpiresByType image/svg+xml "access plus 1 month" |
|
858 |
+ ExpiresByType video/mp4 "access plus 1 month" |
|
859 |
+ ExpiresByType video/ogg "access plus 1 month" |
|
860 |
+ ExpiresByType video/webm "access plus 1 month" |
|
861 |
+ |
|
862 |
+ # Web fonts |
|
863 |
+ |
|
864 |
+ # Embedded OpenType (EOT) |
|
865 |
+ ExpiresByType application/vnd.ms-fontobject "access plus 1 month" |
|
866 |
+ ExpiresByType font/eot "access plus 1 month" |
|
867 |
+ |
|
868 |
+ # OpenType |
|
869 |
+ ExpiresByType font/opentype "access plus 1 month" |
|
870 |
+ |
|
871 |
+ # TrueType |
|
872 |
+ ExpiresByType application/x-font-ttf "access plus 1 month" |
|
873 |
+ |
|
874 |
+ # Web Open Font Format (WOFF) 1.0 |
|
875 |
+ ExpiresByType application/font-woff "access plus 1 month" |
|
876 |
+ ExpiresByType application/x-font-woff "access plus 1 month" |
|
877 |
+ ExpiresByType font/woff "access plus 1 month" |
|
878 |
+ |
|
879 |
+ # Web Open Font Format (WOFF) 2.0 |
|
880 |
+ ExpiresByType application/font-woff2 "access plus 1 month" |
|
881 |
+ |
|
882 |
+ # Other |
|
883 |
+ ExpiresByType text/x-cross-domain-policy "access plus 1 week" |
|
884 |
+ |
|
885 |
+</IfModule> |
|
886 |
+ |
|
887 |
+# ---------------------------------------------------------------------- |
|
888 |
+# | File concatenation | |
|
889 |
+# ---------------------------------------------------------------------- |
|
890 |
+ |
|
891 |
+# Allow concatenation from within specific files. |
|
892 |
+# |
|
893 |
+# e.g.: |
|
894 |
+# |
|
895 |
+# If you have the following lines in a file called, for |
|
896 |
+# example, `main.combined.js`: |
|
897 |
+# |
|
898 |
+# <!--#include file="js/jquery.js" --> |
|
899 |
+# <!--#include file="js/jquery.timer.js" --> |
|
900 |
+# |
|
901 |
+# Apache will replace those lines with the content of the |
|
902 |
+# specified files. |
|
903 |
+ |
|
904 |
+# <IfModule mod_include.c> |
|
905 |
+# <FilesMatch "\.combined\.js$"> |
|
906 |
+# Options +Includes |
|
907 |
+# AddOutputFilterByType INCLUDES application/javascript \ |
|
908 |
+# application/x-javascript \ |
|
909 |
+# text/javascript |
|
910 |
+# SetOutputFilter INCLUDES |
|
911 |
+# </FilesMatch> |
|
912 |
+# <FilesMatch "\.combined\.css$"> |
|
913 |
+# Options +Includes |
|
914 |
+# AddOutputFilterByType INCLUDES text/css |
|
915 |
+# SetOutputFilter INCLUDES |
|
916 |
+# </FilesMatch> |
|
917 |
+# </IfModule> |
|
918 |
+ |
|
919 |
+# ---------------------------------------------------------------------- |
|
920 |
+# | Filename-based cache busting | |
|
921 |
+# ---------------------------------------------------------------------- |
|
922 |
+ |
|
923 |
+# If you're not using a build process to manage your filename version |
|
924 |
+# revving, you might want to consider enabling the following directives |
|
925 |
+# to route all requests such as `/style.12345.css` to `/style.css`. |
|
926 |
+# |
|
927 |
+# To understand why this is important and even a better solution than |
|
928 |
+# using something like `*.css?v231`, please see: |
|
929 |
+# http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/ |
|
930 |
+ |
|
931 |
+# <IfModule mod_rewrite.c> |
|
932 |
+# RewriteEngine On |
|
933 |
+# RewriteCond %{REQUEST_FILENAME} !-f |
|
934 |
+# RewriteRule ^(.+)\.(\d+)\.(bmp|css|cur|gif|ico|jpe?g|js|png|svgz?|webp)$ $1.$3 [L] |
|
935 |
+# </IfModule> |
@@ -0,0 +1,60 @@ |
||
1 |
+<!doctype html> |
|
2 |
+<html lang="en"> |
|
3 |
+<head> |
|
4 |
+ <meta charset="utf-8"> |
|
5 |
+ <title>Page Not Found</title> |
|
6 |
+ <meta name="viewport" content="width=device-width, initial-scale=1"> |
|
7 |
+ <style> |
|
8 |
+ |
|
9 |
+ * { |
|
10 |
+ line-height: 1.2; |
|
11 |
+ margin: 0; |
|
12 |
+ } |
|
13 |
+ |
|
14 |
+ html { |
|
15 |
+ color: #888; |
|
16 |
+ display: table; |
|
17 |
+ font-family: sans-serif; |
|
18 |
+ height: 100%; |
|
19 |
+ text-align: center; |
|
20 |
+ width: 100%; |
|
21 |
+ } |
|
22 |
+ |
|
23 |
+ body { |
|
24 |
+ display: table-cell; |
|
25 |
+ vertical-align: middle; |
|
26 |
+ margin: 2em auto; |
|
27 |
+ } |
|
28 |
+ |
|
29 |
+ h1 { |
|
30 |
+ color: #555; |
|
31 |
+ font-size: 2em; |
|
32 |
+ font-weight: 400; |
|
33 |
+ } |
|
34 |
+ |
|
35 |
+ p { |
|
36 |
+ margin: 0 auto; |
|
37 |
+ width: 280px; |
|
38 |
+ } |
|
39 |
+ |
|
40 |
+ @media only screen and (max-width: 280px) { |
|
41 |
+ |
|
42 |
+ body, p { |
|
43 |
+ width: 95%; |
|
44 |
+ } |
|
45 |
+ |
|
46 |
+ h1 { |
|
47 |
+ font-size: 1.5em; |
|
48 |
+ margin: 0 0 0.3em; |
|
49 |
+ } |
|
50 |
+ |
|
51 |
+ } |
|
52 |
+ |
|
53 |
+ </style> |
|
54 |
+</head> |
|
55 |
+<body> |
|
56 |
+ <h1>Page Not Found</h1> |
|
57 |
+ <p>Sorry, but the page you were trying to view does not exist.</p> |
|
58 |
+</body> |
|
59 |
+</html> |
|
60 |
+<!-- IE needs 512+ bytes: http://blogs.msdn.com/b/ieinternals/archive/2010/08/19/http-error-pages-in-internet-explorer.aspx --> |
@@ -0,0 +1,12 @@ |
||
1 |
+<?xml version="1.0" encoding="utf-8"?> |
|
2 |
+<!-- Please read: http://msdn.microsoft.com/en-us/library/ie/dn455106.aspx --> |
|
3 |
+<browserconfig> |
|
4 |
+ <msapplication> |
|
5 |
+ <tile> |
|
6 |
+ <square70x70logo src="tile.png"/> |
|
7 |
+ <square150x150logo src="tile.png"/> |
|
8 |
+ <wide310x150logo src="tile-wide.png"/> |
|
9 |
+ <square310x310logo src="tile.png"/> |
|
10 |
+ </tile> |
|
11 |
+ </msapplication> |
|
12 |
+</browserconfig> |
@@ -0,0 +1,212 @@ |
||
1 |
+/*! HTML5 Boilerplate v5.0 | MIT License | http://h5bp.com/ */ |
|
2 |
+ |
|
3 |
+html { |
|
4 |
+ color: #222; |
|
5 |
+ font-size: 1em; |
|
6 |
+ line-height: 1.4; |
|
7 |
+} |
|
8 |
+ |
|
9 |
+::-moz-selection { |
|
10 |
+ background: #b3d4fc; |
|
11 |
+ text-shadow: none; |
|
12 |
+} |
|
13 |
+ |
|
14 |
+::selection { |
|
15 |
+ background: #b3d4fc; |
|
16 |
+ text-shadow: none; |
|
17 |
+} |
|
18 |
+ |
|
19 |
+hr { |
|
20 |
+ display: block; |
|
21 |
+ height: 1px; |
|
22 |
+ border: 0; |
|
23 |
+ border-top: 1px solid #ccc; |
|
24 |
+ margin: 1em 0; |
|
25 |
+ padding: 0; |
|
26 |
+} |
|
27 |
+ |
|
28 |
+audio, |
|
29 |
+canvas, |
|
30 |
+iframe, |
|
31 |
+img, |
|
32 |
+svg, |
|
33 |
+video { |
|
34 |
+ vertical-align: middle; |
|
35 |
+} |
|
36 |
+ |
|
37 |
+fieldset { |
|
38 |
+ border: 0; |
|
39 |
+ margin: 0; |
|
40 |
+ padding: 0; |
|
41 |
+} |
|
42 |
+ |
|
43 |
+textarea { |
|
44 |
+ resize: vertical; |
|
45 |
+} |
|
46 |
+ |
|
47 |
+.browserupgrade { |
|
48 |
+ margin: 0.2em 0; |
|
49 |
+ background: #ccc; |
|
50 |
+ color: #000; |
|
51 |
+ padding: 0.2em 0; |
|
52 |
+} |
|
53 |
+ |
|
54 |
+ |
|
55 |
+/* ========================================================================== |
|
56 |
+ Author's custom styles |
|
57 |
+ ========================================================================== */ |
|
58 |
+ |
|
59 |
+body { |
|
60 |
+ background-color: #1D1F21; |
|
61 |
+} |
|
62 |
+ |
|
63 |
+.center-div |
|
64 |
+{ |
|
65 |
+ position: absolute; |
|
66 |
+ margin: auto; |
|
67 |
+ top: 0; |
|
68 |
+ right: 0; |
|
69 |
+ bottom: 0; |
|
70 |
+ left: 0; |
|
71 |
+ width: 436px; |
|
72 |
+ height: 180px; |
|
73 |
+} |
|
74 |
+ |
|
75 |
+ |
|
76 |
+ |
|
77 |
+ |
|
78 |
+ |
|
79 |
+ |
|
80 |
+ |
|
81 |
+ |
|
82 |
+ |
|
83 |
+ |
|
84 |
+ |
|
85 |
+ |
|
86 |
+ |
|
87 |
+/* ========================================================================== |
|
88 |
+ Media Queries |
|
89 |
+ ========================================================================== */ |
|
90 |
+ |
|
91 |
+@media only screen and (min-width: 35em) { |
|
92 |
+ |
|
93 |
+} |
|
94 |
+ |
|
95 |
+@media print, |
|
96 |
+ (-o-min-device-pixel-ratio: 5/4), |
|
97 |
+ (-webkit-min-device-pixel-ratio: 1.25), |
|
98 |
+ (min-resolution: 120dpi) { |
|
99 |
+ |
|
100 |
+} |
|
101 |
+ |
|
102 |
+/* ========================================================================== |
|
103 |
+ Helper classes |
|
104 |
+ ========================================================================== */ |
|
105 |
+ |
|
106 |
+.hidden { |
|
107 |
+ display: none !important; |
|
108 |
+ visibility: hidden; |
|
109 |
+} |
|
110 |
+ |
|
111 |
+.visuallyhidden { |
|
112 |
+ border: 0; |
|
113 |
+ clip: rect(0 0 0 0); |
|
114 |
+ height: 1px; |
|
115 |
+ margin: -1px; |
|
116 |
+ overflow: hidden; |
|
117 |
+ padding: 0; |
|
118 |
+ position: absolute; |
|
119 |
+ width: 1px; |
|
120 |
+} |
|
121 |
+ |
|
122 |
+.visuallyhidden.focusable:active, |
|
123 |
+.visuallyhidden.focusable:focus { |
|
124 |
+ clip: auto; |
|
125 |
+ height: auto; |
|
126 |
+ margin: 0; |
|
127 |
+ overflow: visible; |
|
128 |
+ position: static; |
|
129 |
+ width: auto; |
|
130 |
+} |
|
131 |
+ |
|
132 |
+.invisible { |
|
133 |
+ visibility: hidden; |
|
134 |
+} |
|
135 |
+ |
|
136 |
+.clearfix:before, |
|
137 |
+.clearfix:after { |
|
138 |
+ content: " "; |
|
139 |
+ display: table; |
|
140 |
+} |
|
141 |
+ |
|
142 |
+.clearfix:after { |
|
143 |
+ clear: both; |
|
144 |
+} |
|
145 |
+ |
|
146 |
+.clearfix { |
|
147 |
+ *zoom: 1; |
|
148 |
+} |
|
149 |
+ |
|
150 |
+/* ========================================================================== |
|
151 |
+ Print styles |
|
152 |
+ ========================================================================== */ |
|
153 |
+ |
|
154 |
+@media print { |
|
155 |
+ *, |
|
156 |
+ *:before, |
|
157 |
+ *:after { |
|
158 |
+ background: transparent !important; |
|
159 |
+ color: #000 !important; |
|
160 |
+ box-shadow: none !important; |
|
161 |
+ text-shadow: none !important; |
|
162 |
+ } |
|
163 |
+ |
|
164 |
+ a, |
|
165 |
+ a:visited { |
|
166 |
+ text-decoration: underline; |
|
167 |
+ } |
|
168 |
+ |
|
169 |
+ a[href]:after { |
|
170 |
+ content: " (" attr(href) ")"; |
|
171 |
+ } |
|
172 |
+ |
|
173 |
+ abbr[title]:after { |
|
174 |
+ content: " (" attr(title) ")"; |
|
175 |
+ } |
|
176 |
+ |
|
177 |
+ a[href^="#"]:after, |
|
178 |
+ a[href^="javascript:"]:after { |
|
179 |
+ content: ""; |
|
180 |
+ } |
|
181 |
+ |
|
182 |
+ pre, |
|
183 |
+ blockquote { |
|
184 |
+ border: 1px solid #999; |
|
185 |
+ page-break-inside: avoid; |
|
186 |
+ } |
|
187 |
+ |
|
188 |
+ thead { |
|
189 |
+ display: table-header-group; |
|
190 |
+ } |
|
191 |
+ |
|
192 |
+ tr, |
|
193 |
+ img { |
|
194 |
+ page-break-inside: avoid; |
|
195 |
+ } |
|
196 |
+ |
|
197 |
+ img { |
|
198 |
+ max-width: 100% !important; |
|
199 |
+ } |
|
200 |
+ |
|
201 |
+ p, |
|
202 |
+ h2, |
|
203 |
+ h3 { |
|
204 |
+ orphans: 3; |
|
205 |
+ widows: 3; |
|
206 |
+ } |
|
207 |
+ |
|
208 |
+ h2, |
|
209 |
+ h3 { |
|
210 |
+ page-break-after: avoid; |
|
211 |
+ } |
|
212 |
+} |
@@ -0,0 +1,427 @@ |
||
1 |
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ |
|
2 |
+ |
|
3 |
+/** |
|
4 |
+ * 1. Set default font family to sans-serif. |
|
5 |
+ * 2. Prevent iOS text size adjust after orientation change, without disabling |
|
6 |
+ * user zoom. |
|
7 |
+ */ |
|
8 |
+ |
|
9 |
+html { |
|
10 |
+ font-family: sans-serif; /* 1 */ |
|
11 |
+ -ms-text-size-adjust: 100%; /* 2 */ |
|
12 |
+ -webkit-text-size-adjust: 100%; /* 2 */ |
|
13 |
+} |
|
14 |
+ |
|
15 |
+/** |
|
16 |
+ * Remove default margin. |
|
17 |
+ */ |
|
18 |
+ |
|
19 |
+body { |
|
20 |
+ margin: 0; |
|
21 |
+} |
|
22 |
+ |
|
23 |
+/* HTML5 display definitions |
|
24 |
+ ========================================================================== */ |
|
25 |
+ |
|
26 |
+/** |
|
27 |
+ * Correct `block` display not defined for any HTML5 element in IE 8/9. |
|
28 |
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11 |
|
29 |
+ * and Firefox. |
|
30 |
+ * Correct `block` display not defined for `main` in IE 11. |
|
31 |
+ */ |
|
32 |
+ |
|
33 |
+article, |
|
34 |
+aside, |
|
35 |
+details, |
|
36 |
+figcaption, |
|
37 |
+figure, |
|
38 |
+footer, |
|
39 |
+header, |
|
40 |
+hgroup, |
|
41 |
+main, |
|
42 |
+menu, |
|
43 |
+nav, |
|
44 |
+section, |
|
45 |
+summary { |
|
46 |
+ display: block; |
|
47 |
+} |
|
48 |
+ |
|
49 |
+/** |
|
50 |
+ * 1. Correct `inline-block` display not defined in IE 8/9. |
|
51 |
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. |
|
52 |
+ */ |
|
53 |
+ |
|
54 |
+audio, |
|
55 |
+canvas, |
|
56 |
+progress, |
|
57 |
+video { |
|
58 |
+ display: inline-block; /* 1 */ |
|
59 |
+ vertical-align: baseline; /* 2 */ |
|
60 |
+} |
|
61 |
+ |
|
62 |
+/** |
|
63 |
+ * Prevent modern browsers from displaying `audio` without controls. |
|
64 |
+ * Remove excess height in iOS 5 devices. |
|
65 |
+ */ |
|
66 |
+ |
|
67 |
+audio:not([controls]) { |
|
68 |
+ display: none; |
|
69 |
+ height: 0; |
|
70 |
+} |
|
71 |
+ |
|
72 |
+/** |
|
73 |
+ * Address `[hidden]` styling not present in IE 8/9/10. |
|
74 |
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. |
|
75 |
+ */ |
|
76 |
+ |
|
77 |
+[hidden], |
|
78 |
+template { |
|
79 |
+ display: none; |
|
80 |
+} |
|
81 |
+ |
|
82 |
+/* Links |
|
83 |
+ ========================================================================== */ |
|
84 |
+ |
|
85 |
+/** |
|
86 |
+ * Remove the gray background color from active links in IE 10. |
|
87 |
+ */ |
|
88 |
+ |
|
89 |
+a { |
|
90 |
+ background-color: transparent; |
|
91 |
+} |
|
92 |
+ |
|
93 |
+/** |
|
94 |
+ * Improve readability when focused and also mouse hovered in all browsers. |
|
95 |
+ */ |
|
96 |
+ |
|
97 |
+a:active, |
|
98 |
+a:hover { |
|
99 |
+ outline: 0; |
|
100 |
+} |
|
101 |
+ |
|
102 |
+/* Text-level semantics |
|
103 |
+ ========================================================================== */ |
|
104 |
+ |
|
105 |
+/** |
|
106 |
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome. |
|
107 |
+ */ |
|
108 |
+ |
|
109 |
+abbr[title] { |
|
110 |
+ border-bottom: 1px dotted; |
|
111 |
+} |
|
112 |
+ |
|
113 |
+/** |
|
114 |
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. |
|
115 |
+ */ |
|
116 |
+ |
|
117 |
+b, |
|
118 |
+strong { |
|
119 |
+ font-weight: bold; |
|
120 |
+} |
|
121 |
+ |
|
122 |
+/** |
|
123 |
+ * Address styling not present in Safari and Chrome. |
|
124 |
+ */ |
|
125 |
+ |
|
126 |
+dfn { |
|
127 |
+ font-style: italic; |
|
128 |
+} |
|
129 |
+ |
|
130 |
+/** |
|
131 |
+ * Address variable `h1` font-size and margin within `section` and `article` |
|
132 |
+ * contexts in Firefox 4+, Safari, and Chrome. |
|
133 |
+ */ |
|
134 |
+ |
|
135 |
+h1 { |
|
136 |
+ font-size: 2em; |
|
137 |
+ margin: 0.67em 0; |
|
138 |
+} |
|
139 |
+ |
|
140 |
+/** |
|
141 |
+ * Address styling not present in IE 8/9. |
|
142 |
+ */ |
|
143 |
+ |
|
144 |
+mark { |
|
145 |
+ background: #ff0; |
|
146 |
+ color: #000; |
|
147 |
+} |
|
148 |
+ |
|
149 |
+/** |
|
150 |
+ * Address inconsistent and variable font size in all browsers. |
|
151 |
+ */ |
|
152 |
+ |
|
153 |
+small { |
|
154 |
+ font-size: 80%; |
|
155 |
+} |
|
156 |
+ |
|
157 |
+/** |
|
158 |
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers. |
|
159 |
+ */ |
|
160 |
+ |
|
161 |
+sub, |
|
162 |
+sup { |
|
163 |
+ font-size: 75%; |
|
164 |
+ line-height: 0; |
|
165 |
+ position: relative; |
|
166 |
+ vertical-align: baseline; |
|
167 |
+} |
|
168 |
+ |
|
169 |
+sup { |
|
170 |
+ top: -0.5em; |
|
171 |
+} |
|
172 |
+ |
|
173 |
+sub { |
|
174 |
+ bottom: -0.25em; |
|
175 |
+} |
|
176 |
+ |
|
177 |
+/* Embedded content |
|
178 |
+ ========================================================================== */ |
|
179 |
+ |
|
180 |
+/** |
|
181 |
+ * Remove border when inside `a` element in IE 8/9/10. |
|
182 |
+ */ |
|
183 |
+ |
|
184 |
+img { |
|
185 |
+ border: 0; |
|
186 |
+} |
|
187 |
+ |
|
188 |
+/** |
|
189 |
+ * Correct overflow not hidden in IE 9/10/11. |
|
190 |
+ */ |
|
191 |
+ |
|
192 |
+svg:not(:root) { |
|
193 |
+ overflow: hidden; |
|
194 |
+} |
|
195 |
+ |
|
196 |
+/* Grouping content |
|
197 |
+ ========================================================================== */ |
|
198 |
+ |
|
199 |
+/** |
|
200 |
+ * Address margin not present in IE 8/9 and Safari. |
|
201 |
+ */ |
|
202 |
+ |
|
203 |
+figure { |
|
204 |
+ margin: 1em 40px; |
|
205 |
+} |
|
206 |
+ |
|
207 |
+/** |
|
208 |
+ * Address differences between Firefox and other browsers. |
|
209 |
+ */ |
|
210 |
+ |
|
211 |
+hr { |
|
212 |
+ -moz-box-sizing: content-box; |
|
213 |
+ box-sizing: content-box; |
|
214 |
+ height: 0; |
|
215 |
+} |
|
216 |
+ |
|
217 |
+/** |
|
218 |
+ * Contain overflow in all browsers. |
|
219 |
+ */ |
|
220 |
+ |
|
221 |
+pre { |
|
222 |
+ overflow: auto; |
|
223 |
+} |
|
224 |
+ |
|
225 |
+/** |
|
226 |
+ * Address odd `em`-unit font size rendering in all browsers. |
|
227 |
+ */ |
|
228 |
+ |
|
229 |
+code, |
|
230 |
+kbd, |
|
231 |
+pre, |
|
232 |
+samp { |
|
233 |
+ font-family: monospace, monospace; |
|
234 |
+ font-size: 1em; |
|
235 |
+} |
|
236 |
+ |
|
237 |
+/* Forms |
|
238 |
+ ========================================================================== */ |
|
239 |
+ |
|
240 |
+/** |
|
241 |
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited |
|
242 |
+ * styling of `select`, unless a `border` property is set. |
|
243 |
+ */ |
|
244 |
+ |
|
245 |
+/** |
|
246 |
+ * 1. Correct color not being inherited. |
|
247 |
+ * Known issue: affects color of disabled elements. |
|
248 |
+ * 2. Correct font properties not being inherited. |
|
249 |
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. |
|
250 |
+ */ |
|
251 |
+ |
|
252 |
+button, |
|
253 |
+input, |
|
254 |
+optgroup, |
|
255 |
+select, |
|
256 |
+textarea { |
|
257 |
+ color: inherit; /* 1 */ |
|
258 |
+ font: inherit; /* 2 */ |
|
259 |
+ margin: 0; /* 3 */ |
|
260 |
+} |
|
261 |
+ |
|
262 |
+/** |
|
263 |
+ * Address `overflow` set to `hidden` in IE 8/9/10/11. |
|
264 |
+ */ |
|
265 |
+ |
|
266 |
+button { |
|
267 |
+ overflow: visible; |
|
268 |
+} |
|
269 |
+ |
|
270 |
+/** |
|
271 |
+ * Address inconsistent `text-transform` inheritance for `button` and `select`. |
|
272 |
+ * All other form control elements do not inherit `text-transform` values. |
|
273 |
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. |
|
274 |
+ * Correct `select` style inheritance in Firefox. |
|
275 |
+ */ |
|
276 |
+ |
|
277 |
+button, |
|
278 |
+select { |
|
279 |
+ text-transform: none; |
|
280 |
+} |
|
281 |
+ |
|
282 |
+/** |
|
283 |
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` |
|
284 |
+ * and `video` controls. |
|
285 |
+ * 2. Correct inability to style clickable `input` types in iOS. |
|
286 |
+ * 3. Improve usability and consistency of cursor style between image-type |
|
287 |
+ * `input` and others. |
|
288 |
+ */ |
|
289 |
+ |
|
290 |
+button, |
|
291 |
+html input[type="button"], /* 1 */ |
|
292 |
+input[type="reset"], |
|
293 |
+input[type="submit"] { |
|
294 |
+ -webkit-appearance: button; /* 2 */ |
|
295 |
+ cursor: pointer; /* 3 */ |
|
296 |
+} |
|
297 |
+ |
|
298 |
+/** |
|
299 |
+ * Re-set default cursor for disabled elements. |
|
300 |
+ */ |
|
301 |
+ |
|
302 |
+button[disabled], |
|
303 |
+html input[disabled] { |
|
304 |
+ cursor: default; |
|
305 |
+} |
|
306 |
+ |
|
307 |
+/** |
|
308 |
+ * Remove inner padding and border in Firefox 4+. |
|
309 |
+ */ |
|
310 |
+ |
|
311 |
+button::-moz-focus-inner, |
|
312 |
+input::-moz-focus-inner { |
|
313 |
+ border: 0; |
|
314 |
+ padding: 0; |
|
315 |
+} |
|
316 |
+ |
|
317 |
+/** |
|
318 |
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in |
|
319 |
+ * the UA stylesheet. |
|
320 |
+ */ |
|
321 |
+ |
|
322 |
+input { |
|
323 |
+ line-height: normal; |
|
324 |
+} |
|
325 |
+ |
|
326 |
+/** |
|
327 |
+ * It's recommended that you don't attempt to style these elements. |
|
328 |
+ * Firefox's implementation doesn't respect box-sizing, padding, or width. |
|
329 |
+ * |
|
330 |
+ * 1. Address box sizing set to `content-box` in IE 8/9/10. |
|
331 |
+ * 2. Remove excess padding in IE 8/9/10. |
|
332 |
+ */ |
|
333 |
+ |
|
334 |
+input[type="checkbox"], |
|
335 |
+input[type="radio"] { |
|
336 |
+ box-sizing: border-box; /* 1 */ |
|
337 |
+ padding: 0; /* 2 */ |
|
338 |
+} |
|
339 |
+ |
|
340 |
+/** |
|
341 |
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain |
|
342 |
+ * `font-size` values of the `input`, it causes the cursor style of the |
|
343 |
+ * decrement button to change from `default` to `text`. |
|
344 |
+ */ |
|
345 |
+ |
|
346 |
+input[type="number"]::-webkit-inner-spin-button, |
|
347 |
+input[type="number"]::-webkit-outer-spin-button { |
|
348 |
+ height: auto; |
|
349 |
+} |
|
350 |
+ |
|
351 |
+/** |
|
352 |
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome. |
|
353 |
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome |
|
354 |
+ * (include `-moz` to future-proof). |
|
355 |
+ */ |
|
356 |
+ |
|
357 |
+input[type="search"] { |
|
358 |
+ -webkit-appearance: textfield; /* 1 */ |
|
359 |
+ -moz-box-sizing: content-box; |
|
360 |
+ -webkit-box-sizing: content-box; /* 2 */ |
|
361 |
+ box-sizing: content-box; |
|
362 |
+} |
|
363 |
+ |
|
364 |
+/** |
|
365 |
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X. |
|
366 |
+ * Safari (but not Chrome) clips the cancel button when the search input has |
|
367 |
+ * padding (and `textfield` appearance). |
|
368 |
+ */ |
|
369 |
+ |
|
370 |
+input[type="search"]::-webkit-search-cancel-button, |
|
371 |
+input[type="search"]::-webkit-search-decoration { |
|
372 |
+ -webkit-appearance: none; |
|
373 |
+} |
|
374 |
+ |
|
375 |
+/** |
|
376 |
+ * Define consistent border, margin, and padding. |
|
377 |
+ */ |
|
378 |
+ |
|
379 |
+fieldset { |
|
380 |
+ border: 1px solid #c0c0c0; |
|
381 |
+ margin: 0 2px; |
|
382 |
+ padding: 0.35em 0.625em 0.75em; |
|
383 |
+} |
|
384 |
+ |
|
385 |
+/** |
|
386 |
+ * 1. Correct `color` not being inherited in IE 8/9/10/11. |
|
387 |
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets. |
|
388 |
+ */ |
|
389 |
+ |
|
390 |
+legend { |
|
391 |
+ border: 0; /* 1 */ |
|
392 |
+ padding: 0; /* 2 */ |
|
393 |
+} |
|
394 |
+ |
|
395 |
+/** |
|
396 |
+ * Remove default vertical scrollbar in IE 8/9/10/11. |
|
397 |
+ */ |
|
398 |
+ |
|
399 |
+textarea { |
|
400 |
+ overflow: auto; |
|
401 |
+} |
|
402 |
+ |
|
403 |
+/** |
|
404 |
+ * Don't inherit the `font-weight` (applied by a rule above). |
|
405 |
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. |
|
406 |
+ */ |
|
407 |
+ |
|
408 |
+optgroup { |
|
409 |
+ font-weight: bold; |
|
410 |
+} |
|
411 |
+ |
|
412 |
+/* Tables |
|
413 |
+ ========================================================================== */ |
|
414 |
+ |
|
415 |
+/** |
|
416 |
+ * Remove most spacing between table cells. |
|
417 |
+ */ |
|
418 |
+ |
|
419 |
+table { |
|
420 |
+ border-collapse: collapse; |
|
421 |
+ border-spacing: 0; |
|
422 |
+} |
|
423 |
+ |
|
424 |
+td, |
|
425 |
+th { |
|
426 |
+ padding: 0; |
|
427 |
+} |
@@ -0,0 +1 @@ |
||
1 |
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} |
@@ -0,0 +1,15 @@ |
||
1 |
+# humanstxt.org/ |
|
2 |
+# The humans responsible & technology colophon |
|
3 |
+ |
|
4 |
+# TEAM |
|
5 |
+ |
|
6 |
+ <name> -- <role> -- <twitter> |
|
7 |
+ |
|
8 |
+# THANKS |
|
9 |
+ |
|
10 |
+ <name> |
|
11 |
+ |
|
12 |
+# TECHNOLOGY COLOPHON |
|
13 |
+ |
|
14 |
+ HTML5, CSS3 |
|
15 |
+ jQuery, Modernizr |
@@ -0,0 +1,36 @@ |
||
1 |
+<!doctype html> |
|
2 |
+<html class="no-js" lang=""> |
|
3 |
+ <head> |
|
4 |
+ <meta charset="utf-8"> |
|
5 |
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
|
6 |
+ <title></title> |
|
7 |
+ <meta name="description" content=""> |
|
8 |
+ <meta name="viewport" content="width=device-width, initial-scale=1"> |
|
9 |
+ <link rel="apple-touch-icon" href="apple-touch-icon.png"> |
|
10 |
+ |
|
11 |
+ <link rel="stylesheet" href="css/normalize.min.css"> |
|
12 |
+ <link rel="stylesheet" href="css/main.css"> |
|
13 |
+ |
|
14 |
+ <script src="js/vendor/modernizr-2.8.3.min.js"></script> |
|
15 |
+ </head> |
|
16 |
+ <body> |
|
17 |
+ <div class="center-div"> |
|
18 |
+ <img src="img/J1X_logo_white.png"> |
|
19 |
+ </div> |
|
20 |
+ |
|
21 |
+ |
|
22 |
+ |
|
23 |
+ <script src="js/plugins.js"></script> |
|
24 |
+ <script src="js/main.js"></script> |
|
25 |
+ |
|
26 |
+ <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. --> |
|
27 |
+ <script> |
|
28 |
+ (function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]= |
|
29 |
+ function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date; |
|
30 |
+ e=o.createElement(i);r=o.getElementsByTagName(i)[0]; |
|
31 |
+ e.src='//www.google-analytics.com/analytics.js'; |
|
32 |
+ r.parentNode.insertBefore(e,r)}(window,document,'script','ga')); |
|
33 |
+ ga('create','UA-XXXXX-X','auto');ga('send','pageview'); |
|
34 |
+ </script> |
|
35 |
+ </body> |
|
36 |
+</html> |
@@ -0,0 +1 @@ |
||
1 |
+ |
@@ -0,0 +1,24 @@ |
||
1 |
+// Avoid `console` errors in browsers that lack a console. |
|
2 |
+(function() { |
|
3 |
+ var method; |
|
4 |
+ var noop = function () {}; |
|
5 |
+ var methods = [ |
|
6 |
+ 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', |
|
7 |
+ 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', |
|
8 |
+ 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', |
|
9 |
+ 'timeline', 'timelineEnd', 'timeStamp', 'trace', 'warn' |
|
10 |
+ ]; |
|
11 |
+ var length = methods.length; |
|
12 |
+ var console = (window.console = window.console || {}); |
|
13 |
+ |
|
14 |
+ while (length--) { |
|
15 |
+ method = methods[length]; |
|
16 |
+ |
|
17 |
+ // Only stub undefined methods. |
|
18 |
+ if (!console[method]) { |
|
19 |
+ console[method] = noop; |
|
20 |
+ } |
|
21 |
+ } |
|
22 |
+}()); |
|
23 |
+ |
|
24 |
+// Place any jQuery/helper plugins in here. |
@@ -0,0 +1,4 @@ |
||
1 |
+/* Modernizr 2.8.3 (Custom Build) | MIT & BSD |
|
2 |
+ * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load |
|
3 |
+ */ |
|
4 |
+;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.8.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function q(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?o(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function r(a){a||(a=b);var c=n(a);return s.shivCSS&&!g&&!c.hasCSS&&(c.hasCSS=!!l(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||q(a,c),a}var c="3.7.0",d=a.html5||{},e=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,f=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,g,h="_html5shiv",i=0,j={},k;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))}; |
@@ -0,0 +1,5 @@ |
||
1 |
+# www.robotstxt.org/ |
|
2 |
+ |
|
3 |
+# Allow crawling of all content |
|
4 |
+User-agent: * |
|
5 |
+Disallow: |