Yup - it's pretty simple really, and makes administration much easier to manage.
I'll take my setup as an example. I have /etc/httpd/ that contains three directories:
conf/
conf.d/
vhosts.d/
in conf/ is my httpd.conf file. The last lines in there are:
Code:
Include "/etc/httpd/conf.d/*.conf"
Include "/etc/httpd/vhosts.d/*.conf"
This means that any files ending in ".conf" in those directories are appended to the bottom of apache's config file.
In my conf.d/ dir are files specific to certain services - ssl.conf, squirrelmail.conf, mod_security.conf, etc. Many of those get added by installed RPMs; some I rename from .conf to .old or .inc to "disable" them server-wide.
In my vhosts.d/ dir are files specific to virtual hosts, such as those mentioned above. I also have some additional files (eg: "shared-icons.inc" and "ie-blocker.inc") that aren't included by default (don't end in .conf) but can still include them INTO an included vhost file - meaning that several vhosts can share common directory locations (such as /images, /icons and the like) - just removed unnecessary duplication.
to disable a vhost, just rename it in the vhost.d/ dir from .conf to something else, eg: windows-noob.conf -> window.disabled - then after an apache reload, the config will be overlooked.
If you are managing several vhosts, it makes sense to spend some time analysing and planning the config files layout, looking to template your files and normalise duplications (such as shared directory locations).
Also: don't forget "/etc/init.d/apache configtest" - use it to test out your config settings before restarting/reloading apache!
If it helps, feel free to chuck me a few of your files and I can throw back an example of how I'd structure them, just as an example. They won't fully fit your current setup (can't just drop them in place and hope they work) but it should illustrate what I'm talking about.