<commit_before>---
title: Configuration
taxonomy:
    category: docs
---

All Grav configuration files are written in [YAML syntax](../../advanced/yaml) with a `.yaml` file extension.  YAML is very intuitive which makes it very easy to both read and write, however, you can check out the [YAML page in the Advanced chapter](../../advanced/yaml) to get a complete understanding of the syntax available.

## System Configuration

Grav focuses on making things as easy as possible for the user, and the same goes for configuration.  Grav comes with some sensible default options, and these are contained in a file that resides in the `system/config/system.yaml` file.

However, **you should never change this file**, instead any configuration changes you need to make should be stored in a file called `user/config/system.yaml`.  Any setting in this file with the same structure and naming will override the setting provided in the default system configuration file.

!!!! Generally speaking you should **NEVER** change anything in the `system/` folder.  All things the user does (creating content, installing plugins, editing configuration, etc.) should be done in the `user/` folder.  This way it allows simpler upgrading and also keeps your changes all in one location for backing up, synchronizing, etc.

Here are the variables found in the default `system/config/system.yaml` file:

### Basic Options

```yaml
absolute_urls: false
timezone: ''
default_locale:
param_sep: ':'
wrapped_site: false
reverse_proxy_setup: false
force_ssl: false
force_lowercase_urls: true
custom_base_url: ''
username_regex: '^[a-z0-9_-]{3,16}$'
pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}'
intl_enabled: true
```

These configuration options do not appear within their own child sections. They're general options that affect the way the site operates, its timezone, and base URL. dsksdkdskds

* **absolute_urls**: Absolute or relative URLs for `base_url`.
* **timezone**: Valid values can be found [here](http://php.net/manual/en/timezones.php).
* **default_locale**: Default locale (defaults to system)
* **param_sep**: This is used for Grav parameters in the URL.  Don't change this unless you know what you are doing.  Grav > `1.1.16` automatically sets this to `;` for users running Apache web server on Windows.
* **wrapped_site**: For themes/plugins to know if Grav is wrapped by another platform. Can be `true` or `false`.
* **reverse_proxy_setup**: Running in a reverse proxy scenario with different webserver ports than proxy. Can be `true` or `false`.
* **force_ssl**: If enabled, Grav forces to be accessed via HTTPS (NOTE: Not an ideal solution). Can be `true` or `false`.
* **force_lowercase_urls**:If you want to support mixed cased URLs set this to false
* **custom_base_url**: Manually set the base_url here.
* **username_regex**: Only lowercase chars, digits, dashes, underscores. 3 - 16 chars
* **pwd_regex**: At least one number, one uppercase and lowercase letter, and be at least 8+ chars
* **intl_enabled**: Special logic for PHP International Extension (mod_intl)
<commit_msg>Update docs.md<commit_after>---
title: Configuration
taxonomy:
    category: docs
---

All Grav configuration files are written in [YAML syntax](../../advanced/yaml) with a `.yaml` file extension.  YAML is very intuitive which makes it very easy to both read and write, however, you can check out the [YAML page in the Advanced chapter](../../advanced/yaml) to get a complete understanding of the syntax available.

## System Configuration

Grav focuses on making things as easy as possible for the user, and the same goes for configuration.  Grav comes with some sensible default options, and these are contained in a file that resides in the `system/config/system.yaml` file.

However, **you should never change this file**, instead any configuration changes you need to make should be stored in a file called `user/config/system.yaml`.  Any setting in this file with the same structure and naming will override the setting provided in the default system configuration file.

!!!! Generally speaking you should **NEVER** change anything in the `system/` folder.  All things the user does (creating content, installing plugins, editing configuration, etc.) should be done in the `user/` folder.  This way it allows simpler upgrading and also keeps your changes all in one location for backing up, synchronizing, etc.

Here are the variables found in the default `system/config/system.yaml` file:

### Basic Options

```yaml
absolute_urls: false
timezone: ''
default_locale:
param_sep: ':'
wrapped_site: false
reverse_proxy_setup: false
force_ssl: false
force_lowercase_urls: true
custom_base_url: ''
username_regex: '^[a-z0-9_-]{3,16}$'
pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}'
intl_enabled: true
```

These configuration options do not appear within their own child sections. They're general options that affect the way the site operates, its timezone, and base URL. 

* **absolute_urls**: Absolute or relative URLs for `base_url`.
* **timezone**: Valid values can be found [here](http://php.net/manual/en/timezones.php).
* **default_locale**: Default locale (defaults to system)
* **param_sep**: This is used for Grav parameters in the URL.  Don't change this unless you know what you are doing.  Grav > `1.1.16` automatically sets this to `;` for users running Apache web server on Windows.
* **wrapped_site**: For themes/plugins to know if Grav is wrapped by another platform. Can be `true` or `false`.
* **reverse_proxy_setup**: Running in a reverse proxy scenario with different webserver ports than proxy. Can be `true` or `false`.
* **force_ssl**: If enabled, Grav forces to be accessed via HTTPS (NOTE: Not an ideal solution). Can be `true` or `false`.
* **force_lowercase_urls**:If you want to support mixed cased URLs set this to false
* **custom_base_url**: Manually set the base_url here.
* **username_regex**: Only lowercase chars, digits, dashes, underscores. 3 - 16 chars
* **pwd_regex**: At least one number, one uppercase and lowercase letter, and be at least 8+ chars
* **intl_enabled**: Special logic for PHP International Extension (mod_intl)

{'fraction_non_alphanumeric': 0.100227420402859, 'fraction_numerical': 0.004548408057179987, 'mean_word_length': 4.759588400374182, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2881125', 'n_tokens_mistral': 1720, 'n_tokens_neox': 1641, 'n_words': 822}