generator-razor 3.1.4 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,679 @@
1
+ # ------------------------------------------------------------------------------
2
+ # | Local development (Docker) |
3
+ # ------------------------------------------------------------------------------
4
+
5
+ <FilesMatch \.php$>
6
+ SetHandler proxy:fcgi://php74:9000
7
+ </FilesMatch>
8
+
9
+ # ------------------------------------------------------------------------------
10
+ # | Local development (MAMP) |
11
+ # ------------------------------------------------------------------------------
12
+
13
+ # <IfModule mod_mime.c>
14
+ # RemoveHandler .php
15
+ # RemoveType .php
16
+ # <FilesMatch ".+\.php$">
17
+ # AddHandler php-fastcgi .php
18
+ # </FilesMatch>
19
+ # </IfModule>
20
+
21
+ # ------------------------------------------------------------------------------
22
+ # | TYPO3 application context |
23
+ # ------------------------------------------------------------------------------
24
+
25
+ # SetEnv TYPO3_CONTEXT Development
26
+
27
+ # ------------------------------------------------------------------------------
28
+ # | Maintenance mode |
29
+ # ------------------------------------------------------------------------------
30
+
31
+ # <IfModule mod_rewrite.c>
32
+ # RewriteEngine on
33
+ # RewriteCond %{REMOTE_HOST} !^111\.222\.333\.444
34
+ # RewriteCond %{HTTP:X-FORWARDED-FOR} !^111\.222\.333\.444
35
+ # RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
36
+ # RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
37
+ # # RewriteRule (IP) /x%{HTTP:X-FORWARDED-FOR}x [R,L]
38
+ # RewriteRule .* /maintenance.html [R=302,L]
39
+ # </IfModule>
40
+
41
+ # ------------------------------------------------------------------------------
42
+ # | Browserupdate |
43
+ # ------------------------------------------------------------------------------
44
+
45
+ RewriteCond %{HTTP_USER_AGENT} "Mozilla.*Gecko.*Firefox/([1-9]|[1-2][0-9])[^0-9]" [NC,OR]
46
+ RewriteCond %{HTTP_USER_AGENT} "^Firefox[\/\s]([1-9]|[1-2][0-9])[^0-9]" [NC,OR]
47
+ RewriteCond %{HTTP_USER_AGENT} "AppleWebKit.*Version\/[1-8]\.[0-9\.]*\ Safari" [NC,OR]
48
+ RewriteCond %{HTTP_USER_AGENT} "AppleWebKit.*Version\/[1-8]\.[0-9\.]*\ Mobile\/[A-z0-9]+\ Safari" [NC,OR]
49
+ RewriteCond %{HTTP_USER_AGENT} "(MSIE\ |Trident.+rv:)[1-9][1-9]" [NC]
50
+ #RewriteCond %{HTTP_USER_AGENT} "MSIE ([6-9]|10)" [NC]
51
+ RewriteRule .* browser-support.html [L]
52
+
53
+ # ----------------------------------------------------------------------
54
+ # | Keep alive |
55
+ # ----------------------------------------------------------------------
56
+
57
+ <IfModule mod_headers.c>
58
+ Header set Connection keep-alive
59
+ </IfModule>
60
+
61
+ # ----------------------------------------------------------------------
62
+ # | Vary |
63
+ # ----------------------------------------------------------------------
64
+
65
+ <IfModule mod_headers.c>
66
+ <FilesMatch ".(js|css|xml|gz|html)$">
67
+ Header append Vary: Accept-Encoding
68
+ </FilesMatch>
69
+ </IfModule>
70
+
71
+ # ----------------------------------------------------------------------
72
+ # | Enforce trailing slash. Ignore trailing slash on file endings |
73
+ # ----------------------------------------------------------------------
74
+
75
+ # <IfModule mod_rewrite.c>
76
+ # RewriteBase /
77
+ # RewriteCond %{REQUEST_FILENAME} !-f
78
+ # RewriteCond %{REQUEST_FILENAME} !-d
79
+ # RewriteCond %{REQUEST_URI} !(.*)/$
80
+ # RewriteCond %{REQUEST_FILENAME} !\.(gif|jpg|png|jpeg|css|js|xml|rss|json|txt|yaml|yml)$ [NC]
81
+ # RewriteCond %{REQUEST_URI} !\.(gif|jpg|png|jpeg|css|js|xml|rss|json|txt|yaml|yml)$ [NC]
82
+ # RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
83
+ # </IfModule>
84
+
85
+ # ----------------------------------------------------------------------
86
+ # | webp support |
87
+ # ----------------------------------------------------------------------
88
+
89
+ # <IfModule mod_rewrite.c>
90
+ # RewriteEngine On
91
+ # RewriteCond %{HTTP_ACCEPT} image/webp
92
+ # RewriteCond %{DOCUMENT_ROOT}/$1.$3.webp -f
93
+ # RewriteRule ^((fileadmin|other-storage)/.+)\.(png|jpg|jpeg)$ $1.$3.webp [L]
94
+ # </IfModule>
95
+
96
+ # <IfModule mod_headers.c>
97
+ # Header append Vary Accept env=REDIRECT_accept
98
+ # </IfModule>
99
+
100
+ # ----------------------------------------------------------------------
101
+ # | Forcing the `www.` at the beginning of URLs |
102
+ # ----------------------------------------------------------------------
103
+
104
+ # RewriteCond %{HTTP_HOST} ^mywebsite\.com$ [NC]
105
+ # RewriteRule ^(.*)$ http://www\.mywebsite\.com/$1 [R=301,L]
106
+
107
+ # ----------------------------------------------------------------------
108
+ # | No `www.` at the beginning of URLs |
109
+ # ----------------------------------------------------------------------
110
+
111
+ # RewriteCond %{HTTP_HOST} ^www.subdomain\.mywebsite\.com [NC]
112
+ # RewriteRule ^(.*)$ http://subdomain\.mywebsite\.com/$1 [R=301,L]
113
+
114
+ # ----------------------------------------------------------------------
115
+ # | Forcing `https://` |
116
+ # ----------------------------------------------------------------------
117
+
118
+ # Redirect from the `http://` to the `https://` version of the URL.
119
+ # https://wiki.apache.org/httpd/RewriteHTTPToHTTPS
120
+
121
+ <IfModule mod_rewrite.c>
122
+ RewriteEngine On
123
+ RewriteCond %{HTTPS} !=on
124
+ RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
125
+ RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
126
+ </IfModule>
127
+
128
+ # ----------------------------------------------------------------------
129
+ # | TYPO3 |
130
+ # ----------------------------------------------------------------------
131
+
132
+ #####
133
+ #
134
+ # Example .htaccess file for TYPO3 CMS - for use with Apache Webserver
135
+ #
136
+ # This file includes settings for the following configuration options:
137
+ #
138
+ # - Compression
139
+ # - Caching
140
+ # - MIME types
141
+ # - Cross Origin requests
142
+ # - Rewriting and Access
143
+ # - Miscellaneous
144
+ # - PHP optimisation
145
+ #
146
+ # If you want to use it, you have to copy it to the root folder of your TYPO3 installation (if its
147
+ # not there already) and rename it to '.htaccess'. To make .htaccess files work, you might need to
148
+ # adjust the 'AllowOverride' directive in your Apache configuration file.
149
+ #
150
+ # IMPORTANT: You may need to change this file depending on your TYPO3 installation!
151
+ # Consider adding this file's content to your webserver's configuration directly for speed improvement
152
+ #
153
+ # Lots of the options are taken from https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess
154
+ #
155
+ ####
156
+
157
+
158
+ ### Begin: Compression ###
159
+
160
+ # Compressing resource files will save bandwidth and so improve loading speed especially for users
161
+ # with slower internet connections. TYPO3 can compress the .js and .css files for you.
162
+ # *) Uncomment the following lines and
163
+ # *) Set $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] = 9 for the Backend
164
+ # *) Set $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] = 9 together with the TypoScript properties
165
+ # config.compressJs and config.compressCss for GZIP compression of Frontend JS and CSS files.
166
+
167
+ <FilesMatch "\.js\.gzip$">
168
+ AddType "text/javascript" .gzip
169
+ </FilesMatch>
170
+ <FilesMatch "\.css\.gzip$">
171
+ AddType "text/css" .gzip
172
+ </FilesMatch>
173
+ AddEncoding gzip .gzip
174
+
175
+ <IfModule mod_deflate.c>
176
+ # Force compression for mangled `Accept-Encoding` request headers
177
+ <IfModule mod_setenvif.c>
178
+ <IfModule mod_headers.c>
179
+ SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
180
+ RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
181
+ </IfModule>
182
+ </IfModule>
183
+
184
+ # Compress all output labeled with one of the following media types.
185
+ #
186
+ # (!) For Apache versions below version 2.3.7 you don't need to
187
+ # enable `mod_filter` and can remove the `<IfModule mod_filter.c>`
188
+ # and `</IfModule>` lines as `AddOutputFilterByType` is still in
189
+ # the core directives.
190
+ #
191
+ # https://httpd.apache.org/docs/current/mod/mod_filter.html#addoutputfilterbytype
192
+
193
+ <IfModule mod_filter.c>
194
+ AddOutputFilterByType DEFLATE application/atom+xml \
195
+ application/javascript \
196
+ application/json \
197
+ application/ld+json \
198
+ application/manifest+json \
199
+ application/rdf+xml \
200
+ application/rss+xml \
201
+ application/schema+json \
202
+ application/vnd.geo+json \
203
+ application/vnd.ms-fontobject \
204
+ application/x-font-ttf \
205
+ application/x-javascript \
206
+ application/x-web-app-manifest+json \
207
+ application/xhtml+xml \
208
+ application/xml \
209
+ font/eot \
210
+ font/opentype \
211
+ image/bmp \
212
+ image/svg+xml \
213
+ image/vnd.microsoft.icon \
214
+ image/x-icon \
215
+ text/cache-manifest \
216
+ text/css \
217
+ text/html \
218
+ text/javascript \
219
+ text/plain \
220
+ text/vcard \
221
+ text/vnd.rim.location.xloc \
222
+ text/vtt \
223
+ text/x-component \
224
+ text/x-cross-domain-policy \
225
+ text/xml
226
+ </IfModule>
227
+
228
+ <IfModule mod_mime.c>
229
+ AddEncoding gzip svgz
230
+ </IfModule>
231
+ </IfModule>
232
+
233
+ ### End: Compression ###
234
+
235
+
236
+
237
+ ### Begin: Browser caching of resource files ###
238
+
239
+ # This affects Frontend and Backend and increases performance.
240
+ <IfModule mod_expires.c>
241
+
242
+ ExpiresActive on
243
+ ExpiresDefault "access plus 1 month"
244
+
245
+ ExpiresByType text/css "access plus 1 year"
246
+
247
+ ExpiresByType application/json "access plus 0 seconds"
248
+ ExpiresByType application/ld+json "access plus 0 seconds"
249
+ ExpiresByType application/schema+json "access plus 0 seconds"
250
+ ExpiresByType application/vnd.geo+json "access plus 0 seconds"
251
+ ExpiresByType application/xml "access plus 0 seconds"
252
+ ExpiresByType text/xml "access plus 0 seconds"
253
+
254
+ ExpiresByType image/vnd.microsoft.icon "access plus 1 week"
255
+ ExpiresByType image/x-icon "access plus 1 week"
256
+
257
+ ExpiresByType text/x-component "access plus 1 month"
258
+
259
+ ExpiresByType text/html "access plus 0 seconds"
260
+
261
+ ExpiresByType application/javascript "access plus 1 year"
262
+ ExpiresByType application/x-javascript "access plus 1 year"
263
+ ExpiresByType text/javascript "access plus 1 year"
264
+
265
+ ExpiresByType application/manifest+json "access plus 1 week"
266
+ ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
267
+ ExpiresByType text/cache-manifest "access plus 0 seconds"
268
+
269
+ ExpiresByType audio/ogg "access plus 1 month"
270
+ ExpiresByType image/bmp "access plus 1 year"
271
+ ExpiresByType image/gif "access plus 1 year"
272
+ ExpiresByType image/jpeg "access plus 1 year"
273
+ ExpiresByType image/png "access plus 1 year"
274
+ ExpiresByType image/svg+xml "access plus 1 month"
275
+ ExpiresByType image/webp "access plus 1 month"
276
+ ExpiresByType video/mp4 "access plus 1 month"
277
+ ExpiresByType video/ogg "access plus 1 month"
278
+ ExpiresByType video/webm "access plus 1 month"
279
+
280
+ ExpiresByType application/atom+xml "access plus 1 hour"
281
+ ExpiresByType application/rdf+xml "access plus 1 hour"
282
+ ExpiresByType application/rss+xml "access plus 1 hour"
283
+
284
+ ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
285
+ ExpiresByType font/eot "access plus 1 month"
286
+ ExpiresByType font/opentype "access plus 1 month"
287
+ ExpiresByType application/x-font-ttf "access plus 1 month"
288
+ ExpiresByType application/font-woff "access plus 1 month"
289
+ ExpiresByType application/x-font-woff "access plus 1 month"
290
+ ExpiresByType font/woff "access plus 1 month"
291
+ ExpiresByType application/font-woff2 "access plus 1 month"
292
+
293
+ ExpiresByType text/x-cross-domain-policy "access plus 1 week"
294
+
295
+ </IfModule>
296
+
297
+ ### End: Browser caching of resource files ###
298
+
299
+
300
+ ### Begin: MIME types ###
301
+
302
+ # Proper MIME types for all files
303
+ <IfModule mod_mime.c>
304
+ # Security configuration
305
+ RemoveType .html .htm
306
+ <FilesMatch ".+\.html?$">
307
+ AddType text/html .html .htm
308
+ </FilesMatch>
309
+
310
+ RemoveType .svg .svgz
311
+ <FilesMatch ".+\.svgz?$">
312
+ AddType image/svg+xml .svg .svgz
313
+ </FilesMatch>
314
+
315
+ # Data interchange
316
+ AddType application/atom+xml atom
317
+ AddType application/json json map topojson
318
+ AddType application/ld+json jsonld
319
+ AddType application/rss+xml rss
320
+ AddType application/vnd.geo+json geojson
321
+ AddType application/xml rdf xml
322
+
323
+ # JavaScript
324
+ AddType application/javascript js
325
+
326
+ # Manifest files
327
+ AddType application/manifest+json webmanifest
328
+ AddType application/x-web-app-manifest+json webapp
329
+ AddType text/cache-manifest appcache
330
+
331
+ # Media files
332
+
333
+ AddType audio/mp4 f4a f4b m4a
334
+ AddType audio/ogg oga ogg opus
335
+ AddType image/bmp bmp
336
+ AddType image/webp webp
337
+ AddType video/mp4 f4v f4p m4v mp4
338
+ AddType video/ogg ogv
339
+ AddType video/webm webm
340
+ AddType video/x-flv flv
341
+ AddType image/x-icon cur ico
342
+
343
+ # Web fonts
344
+ AddType font/woff woff
345
+ AddType font/woff2 woff2
346
+ AddType application/vnd.ms-fontobject eot
347
+ AddType font/ttf ttc ttf
348
+ AddType font/otf otf
349
+
350
+ # Other
351
+ AddType application/octet-stream safariextz
352
+ AddType application/x-bb-appworld bbaw
353
+ AddType application/x-chrome-extension crx
354
+ AddType application/x-opera-extension oex
355
+ AddType application/x-xpinstall xpi
356
+ AddType text/vcard vcard vcf
357
+ AddType text/vnd.rim.location.xloc xloc
358
+ AddType text/vtt vtt
359
+ AddType text/x-component htc
360
+
361
+ </IfModule>
362
+
363
+ # UTF-8 encoding
364
+ AddDefaultCharset utf-8
365
+ <IfModule mod_mime.c>
366
+ AddCharset utf-8 .atom .css .js .json .manifest .rdf .rss .vtt .webapp .webmanifest .xml
367
+ </IfModule>
368
+
369
+ ### End: MIME types ###
370
+
371
+
372
+
373
+ ### Begin: Cross Origin ###
374
+
375
+ # Send the CORS header for images when browsers request it.
376
+ <IfModule mod_setenvif.c>
377
+ <IfModule mod_headers.c>
378
+ <FilesMatch "\.(bmp|cur|gif|ico|jpe?g|png|svgz?|webp)$">
379
+ SetEnvIf Origin ":" IS_CORS
380
+ Header set Access-Control-Allow-Origin "*" env=IS_CORS
381
+ </FilesMatch>
382
+ </IfModule>
383
+ </IfModule>
384
+
385
+ # Allow cross-origin access to web fonts.
386
+ <IfModule mod_headers.c>
387
+ <FilesMatch "\.(eot|otf|tt[cf]|woff2?)$">
388
+ Header set Access-Control-Allow-Origin "*"
389
+ </FilesMatch>
390
+ </IfModule>
391
+
392
+ ### End: Cross Origin ###
393
+
394
+ ### Begin: StaticFileCache (preparation) ####
395
+
396
+ # Document root configuration
397
+ RewriteRule .* - [E=SFC_ROOT:%{DOCUMENT_ROOT}]
398
+ # RewriteRule .* - [E=SFC_ROOT:%{DOCUMENT_ROOT}/t3site] # Example if your installation is installed in a directory
399
+ # NOTE: There are cases (apache versions and configuration) where DOCUMENT_ROOT do not exists. Please set the SFC_ROOT to the right directory without DOCUMENT_ROOT then!
400
+
401
+ # Cleanup URI
402
+ RewriteCond %{REQUEST_URI} ^.*$
403
+ RewriteRule .* - [E=SFC_URI:/%{REQUEST_URI}]
404
+ RewriteCond %{REQUEST_URI} ^/.*$
405
+ RewriteRule .* - [E=SFC_URI:%{REQUEST_URI}]
406
+ RewriteCond %{REQUEST_URI} ^/?$
407
+ RewriteRule .* - [E=SFC_URI:/]
408
+
409
+ # Cleanup HOST
410
+ RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$
411
+ RewriteRule .* - [E=SFC_HOST:%1]
412
+
413
+ # Disable cache for EXT:solr indexing requests
414
+ RewriteCond %{HTTP:X-Tx-Solr-Iq} .+
415
+ RewriteRule .* - [E=SFC_HOST:invalid-host]
416
+
417
+ # Get scheme
418
+ RewriteRule .* - [E=SFC_PROTOCOL:http]
419
+ RewriteCond %{SERVER_PORT} ^443$ [OR]
420
+ RewriteCond %{HTTP:X-Forwarded-Proto} https
421
+ RewriteRule .* - [E=SFC_PROTOCOL:https]
422
+
423
+ # Get port
424
+ RewriteRule .* - [E=SFC_PORT:80]
425
+ RewriteCond %{ENV:SFC_PROTOCOL} ^https$ [NC]
426
+ RewriteRule .* - [E=SFC_PORT:443]
427
+ RewriteCond %{SERVER_PORT} ^[0-9]+$
428
+ RewriteRule .* - [E=SFC_PORT:%{SERVER_PORT}]
429
+ RewriteCond %{HTTP:X-Forwarded-Port} ^[0-9]+$
430
+ RewriteRule .* - [E=SFC_PORT:%{HTTP:X-Forwarded-Port}]
431
+
432
+ # Full path for redirect
433
+ RewriteRule .* - [E=SFC_FULLPATH:typo3temp/tx_staticfilecache/%{ENV:SFC_PROTOCOL}_%{ENV:SFC_HOST}_%{ENV:SFC_PORT}%{ENV:SFC_URI}/index]
434
+
435
+ # Extension (Order: br, gzip, default)
436
+ RewriteRule .* - [E=SFC_EXT:]
437
+ RewriteCond %{HTTP:Accept-Encoding} br [NC]
438
+ RewriteRule .* - [E=SFC_EXT:.br]
439
+ RewriteCond %{ENV:SFC_ROOT}/%{ENV:SFC_FULLPATH}%{ENV:SFC_EXT} !-f
440
+ RewriteRule .* - [E=SFC_EXT:]
441
+ RewriteCond %{ENV:SFC_EXT} ^$
442
+ RewriteCond %{HTTP:Accept-Encoding} gzip [NC]
443
+ RewriteRule .* - [E=SFC_EXT:.gz]
444
+ RewriteCond %{ENV:SFC_EXT} ^\.gz$
445
+ RewriteCond %{ENV:SFC_ROOT}/%{ENV:SFC_FULLPATH}%{ENV:SFC_EXT} !-f
446
+ RewriteRule .* - [E=SFC_EXT:]
447
+
448
+ # Write Extension to SFC_FULLPATH
449
+ RewriteRule .* - [E=SFC_FULLPATH:%{ENV:SFC_FULLPATH}%{ENV:SFC_EXT}]
450
+
451
+ ### Begin: StaticFileCache (main) ####
452
+
453
+ # We only redirect URI's without query strings
454
+ RewriteCond %{QUERY_STRING} ^$
455
+
456
+ # It only makes sense to do the other checks if a static file actually exists.
457
+ RewriteCond %{ENV:SFC_ROOT}/%{ENV:SFC_FULLPATH} -f
458
+
459
+ # NO frontend or backend user is logged in. Logged in users may see different
460
+ # information than anonymous users. But the anonymous version is cached. So
461
+ # don't show the anonymous version to logged in users.
462
+ RewriteCond %{HTTP_COOKIE} !staticfilecache [NC]
463
+
464
+ # We only redirect GET requests
465
+ RewriteCond %{REQUEST_METHOD} GET
466
+
467
+ # Rewrite the request to the static file.
468
+ RewriteRule .* %{ENV:SFC_ROOT}/%{ENV:SFC_FULLPATH} [L]
469
+
470
+ # Do not allow direct call the cache entries
471
+ RewriteCond %{ENV:SFC_URI} ^/typo3temp/tx_staticfilecache/.*
472
+ RewriteCond %{ENV:REDIRECT_STATUS} ^$
473
+ RewriteRule .* - [F,L]
474
+
475
+ # Handle application cache
476
+ RewriteCond %{REQUEST_FILENAME} !-f
477
+ RewriteCond %{REQUEST_FILENAME} !-d
478
+ RewriteCond %{REQUEST_FILENAME} !-l
479
+ RewriteRule ^.*\.sfc$ %{ENV:CWD}index.php?eID=sfc_manifest [QSA,L]
480
+
481
+ ### Begin: StaticFileCache (options) ####
482
+
483
+ # Set proper content type and encoding for gzipped html.
484
+ <FilesMatch "\.gzip$">
485
+ SetEnv no-gzip 1
486
+ SetEnv no-brotli 1
487
+ <IfModule mod_headers.c>
488
+ Header set Content-Encoding gzip
489
+ </IfModule>
490
+ </FilesMatch>
491
+ <FilesMatch "\.gz$">
492
+ SetEnv no-gzip 1
493
+ SetEnv no-brotli 1
494
+ <IfModule mod_headers.c>
495
+ Header set Content-Encoding gzip
496
+ </IfModule>
497
+ </FilesMatch>
498
+ <FilesMatch "\.br$">
499
+ SetEnv no-gzip 1
500
+ SetEnv no-brotli 1
501
+ <IfModule mod_headers.c>
502
+ Header set Content-Encoding br
503
+ </IfModule>
504
+ </FilesMatch>
505
+
506
+ # if there are same problems with ForceType, please try the AddType alternative
507
+ # Set proper content type gzipped html
508
+ <FilesMatch "\.gzip$">
509
+ ForceType text/html
510
+ # AddType "text/html" .gzip
511
+ </FilesMatch>
512
+ <FilesMatch "\.js\.gzip$">
513
+ ForceType text/javascript
514
+ # AddType "text/javascript" .gzip
515
+ </FilesMatch>
516
+ <FilesMatch "\.css\.gzip$">
517
+ ForceType text/css
518
+ # AddType "text/css" .gzip
519
+ </FilesMatch>
520
+ <FilesMatch "\.xml\.gzip$">
521
+ ForceType text/xml
522
+ # AddType "text/xml" .gzip
523
+ </FilesMatch>
524
+ <FilesMatch "\.rss\.gzip$">
525
+ ForceType text/xml
526
+ # AddType "text/xml" .gzip
527
+ </FilesMatch>
528
+ <FilesMatch "\.gz$">
529
+ ForceType text/html
530
+ # AddType "text/html" .gz
531
+ </FilesMatch>
532
+ <FilesMatch "\.xml\.gz$">
533
+ ForceType text/xml
534
+ # AddType "text/xml" .gz
535
+ </FilesMatch>
536
+ <FilesMatch "\.rss\.gz$">
537
+ ForceType text/xml
538
+ # AddType "text/xml" .gz
539
+ </FilesMatch>
540
+ <FilesMatch "\.br$">
541
+ ForceType text/html
542
+ # AddType "text/html" .br
543
+ </FilesMatch>
544
+ <FilesMatch "\.xml\.br$">
545
+ ForceType text/xml
546
+ # AddType "text/xml" .br
547
+ </FilesMatch>
548
+ <FilesMatch "\.rss\.br$">
549
+ ForceType text/xml
550
+ # AddType "text/xml" .br
551
+ </FilesMatch>
552
+
553
+ # Avoid .br files being delivered with Content-Language: br headers
554
+ <IfModule mod_mime.c>
555
+ RemoveLanguage .br
556
+ </IfModule>
557
+
558
+ ### End: StaticFileCache ###
559
+
560
+
561
+ ### Begin: Rewriting and Access ###
562
+
563
+ # You need rewriting, if you use a URL-Rewriting extension (RealURL, CoolUri).
564
+
565
+ <IfModule mod_rewrite.c>
566
+
567
+ # Enable URL rewriting
568
+ RewriteEngine On
569
+
570
+ # Store the current location in an environment variable CWD to use
571
+ # mod_rewrite in .htaccess files without knowing the RewriteBase
572
+ RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$
573
+ RewriteRule ^.*$ - [E=CWD:%2]
574
+
575
+ # Rules to set ApplicationContext based on hostname
576
+ #RewriteCond %{HTTP_HOST} ^dev\.example\.com$
577
+ #RewriteRule .? - [E=TYPO3_CONTEXT:Development]
578
+ #RewriteCond %{HTTP_HOST} ^staging\.example\.com$
579
+ #RewriteRule .? - [E=TYPO3_CONTEXT:Production/Staging]
580
+ #RewriteCond %{HTTP_HOST} ^www\.example\.com$
581
+ #RewriteRule .? - [E=TYPO3_CONTEXT:Production]
582
+
583
+ # Rule for versioned static files, configured through:
584
+ # - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename']
585
+ # - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename']
586
+ # IMPORTANT: This rule has to be the very first RewriteCond in order to work!
587
+ RewriteCond %{REQUEST_FILENAME} !-f
588
+ RewriteCond %{REQUEST_FILENAME} !-d
589
+ RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ %{ENV:CWD}$1.$3 [L]
590
+
591
+ # Access block for folders
592
+ RewriteRule _(?:recycler|temp)_/ - [F]
593
+ RewriteRule fileadmin/templates/.*\.(?:txt|ts)$ - [F]
594
+ RewriteRule ^(?:vendor|typo3_src|typo3temp/var) - [F]
595
+ RewriteRule (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ - [F]
596
+
597
+ # Block access to all hidden files and directories with the exception of
598
+ # the visible content from within the `/.well-known/` hidden directory (RFC 5785).
599
+ RewriteCond %{REQUEST_URI} "!(^|/)\.well-known/([^./]+./?)+$" [NC]
600
+ RewriteCond %{SCRIPT_FILENAME} -d [OR]
601
+ RewriteCond %{SCRIPT_FILENAME} -f
602
+ RewriteRule (?:^|/)\. - [F]
603
+
604
+ # Stop rewrite processing, if we are in any other known directory
605
+ # NOTE: Add your additional local storages here
606
+ RewriteRule ^(?:fileadmin/|typo3conf/|typo3temp/|uploads/) - [L]
607
+
608
+ # If the file/symlink/directory does not exist but is below /typo3/, redirect to the TYPO3 Backend entry point.
609
+ RewriteCond %{REQUEST_FILENAME} !-f
610
+ RewriteCond %{REQUEST_FILENAME} !-d
611
+ RewriteCond %{REQUEST_FILENAME} !-l
612
+ RewriteCond %{REQUEST_URI} ^/typo3/.*$
613
+ RewriteRule ^typo3/(.*)$ %{ENV:CWD}typo3/index.php [QSA,L]
614
+
615
+ # If the file/symlink/directory does not exist => Redirect to index.php.
616
+ # For httpd.conf, you need to prefix each '%{REQUEST_FILENAME}' with '%{DOCUMENT_ROOT}'.
617
+ RewriteCond %{REQUEST_FILENAME} !-f
618
+ RewriteCond %{REQUEST_FILENAME} !-d
619
+ RewriteCond %{REQUEST_FILENAME} !-l
620
+ RewriteRule ^.*$ %{ENV:CWD}index.php [QSA,L]
621
+
622
+ </IfModule>
623
+
624
+ # Access block for files
625
+ # Apache < 2.3
626
+ <IfModule !mod_authz_core.c>
627
+ <FilesMatch "(?i:^\.|^#.*#|^(?:ChangeLog|ToDo|Readme|License)(?:\.md|\.txt)?|^composer\.(?:json|lock)|^ext_conf_template\.txt|^ext_typoscript_constants\.txt|^ext_typoscript_setup\.txt|flexform[^.]*\.xml|locallang[^.]*\.(?:xml|xlf)|\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql(?:\..*)?|sqlite(?:\..*)?|sw[op]|git.*|rc)|.*~)$">
628
+ Order allow,deny
629
+ Deny from all
630
+ Satisfy All
631
+ </FilesMatch>
632
+ </IfModule>
633
+ # Apache ≥ 2.3
634
+ <IfModule mod_authz_core.c>
635
+ <If "%{REQUEST_URI} =~ m#(?i:/\.|/\x23.*\x23|/(?:ChangeLog|ToDo|Readme|License)(?:\.md|\.txt)?|/composer\.(?:json|lock)|/ext_conf_template\.txt|/ext_typoscript_constants\.txt|/ext_typoscript_setup\.txt|flexform[^.]*\.xml|locallang[^.]*\.(?:xml|xlf)|\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql(?:\..*)?|sqlite(?:\..*)?|sw[op]|git.*|rc)|.*~)$#">
636
+ Require all denied
637
+ </If>
638
+ </IfModule>
639
+
640
+ # Block access to vcs directories
641
+ <IfModule mod_alias.c>
642
+ RedirectMatch 404 /\.(?:git|svn|hg)/
643
+ </IfModule>
644
+
645
+ ### End: Rewriting and Access ###
646
+
647
+
648
+
649
+ ### Begin: Miscellaneous ###
650
+
651
+ # 404 error prevention for non-existing redirected folders
652
+ Options -MultiViews
653
+
654
+ # Make sure that directory listings are disabled.
655
+ <IfModule mod_autoindex.c>
656
+ Options -Indexes
657
+ </IfModule>
658
+
659
+ <IfModule mod_headers.c>
660
+ # Force IE to render pages in the highest available mode
661
+ Header set X-UA-Compatible "IE=edge"
662
+ <FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svgz?|ttf|vcf|webapp|webm|webp|woff2?|xml|xpi)$">
663
+ Header unset X-UA-Compatible
664
+ </FilesMatch>
665
+
666
+ # Reducing MIME type security risks
667
+ Header set X-Content-Type-Options "nosniff"
668
+ </IfModule>
669
+
670
+ # ETag removal
671
+ <IfModule mod_headers.c>
672
+ Header unset ETag
673
+ </IfModule>
674
+ FileETag None
675
+
676
+ ### End: Miscellaneous ###
677
+
678
+
679
+ # Add your own rules here.