for ZSH, you can set a variable named ZDOTDIR to ~/.config/zsh . You do that in a global config file somewhere in /etc . (/etc/zprofile maybe?). You can then put .zshrc and other zsh config into the .config/zsh/ directory.
EDIT: here's an excerpt from my old notes for setting up a new computer:
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



does this mean i'm ok as long as i stop before i'm 25?