for ZSH, you can set a variable named ZDOTDIR to ~/.config/zsh . You do that in a global config file in /etc .
edit the file /etc/zsh/zshenv , add the following lines to the file:
export XDG_DATA_HOME=$HOME/.local/share
export XDG_CONFIG_HOME=$HOME/.config
export XDG_STATE_HOME=$HOME/.local/state
export XDG_CACHE_HOME=$HOME/.cache
export ZDOTDIR=$HOME/.config/zsh
You can then put .zshrc and other zsh config into the .config/zsh/ directory.