Apache is a powerful web server which serves html/css/cgi/pl out of the box, and can serve other languages/frameworks via extensions.
The Apache Homepage says this of Apache:
The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
Configure USE Flags
If you want to enable any of the above use flags, create a file called /etc/portage/package.use/apache and add the options that you want to enable to it. For example:
www-servers/apache ssl threads
After you have configured the USE flags that you want to build Apache with, emerge it:
root # emerge apache
Many packages have apache2 use flags. These use flags are often required for an application to be supported by Apache. Setting a system wide apache2 use flag is a good idea.
/etc/portage/make.conf- set system wide apache2 useflag
Apache's configuration files are broken up and located in several spots.
conf.d controls the init script, adding things to it such as -D SECURITY & -D PHP5 will enable web application fire-walling & the php scripting language.
httpd.conf controls how the server behaves, at the bottom of the file it has directives to include configuration files ending in .conf in
DSO / mod_php
/etc/conf.d/apache2- enable php dso module
"... -D PHP5"
To start apache immediately:
root # rc-service apache2 start
To start apache upon boot:
root # rc-update add apache2
The Apache documentation describes
The mod_rewrite module uses a rule-based rewriting engine, based on a PCRE regular-expression parser, to rewrite requested URLs on the fly. By default, mod_rewrite maps a URL to a filesystem path. However, it can also be used to redirect one URL to another URL, or to invoke an internal proxy fetch.
Setting it up
mod_rewrite has a reputation of being difficult to set up. mod_rewrite requires following symlinks & Order allow,deny (apache 2.2) or Require all granted (apache 2.4) is set. To test functionality of mod_rewrite we will need to make a few files.
If you want to test this for web applications such as mediawiki adjust the path to
/var/www/localhost/htdocs/.htaccess- enable the rewrite engine
RewriteEngine on RewriteRule ^test.html$ rewrite.html
/var/www/localhost/htdocs/test.html- set system wide apache2 useflag
rewrite is not working
/var/www/localhost/htdocs/rewrite.html- set system wide apache2 useflag
rewrite is working
Then point your browser to http://127.0.0.1/test.html. You should see that the text from rewrite.html has been loaded.