由 冷雪 在 07-24-2003 11:45 发表:
关于虚拟主机的问题
我的系统是: RH9
eth0: 192.168.0.249
dns: www.cool.com 192.168.0.249
dns: www.go.com 192.168.0.249
就是用同一个IP 给不同的域名做解析,做虚拟主机,也就是基于域名的:有关
httpd.conf 配置如下:
Aliases: Add here as many aliases as you need (with no limit). The format is
Alias fakename realname
Note that if you include a trailing / on fakename then the server will
require it to be present in the URL. So "/icons" isn't aliased in this
example, only "/icons/". If the fakename is slash-terminated, then the
realname must also be slash terminated, and if the fakename omits the
trailing slash, the realname must also omit it.
We include the /icons/ alias for FancyIndexed directory listings. If you
do not use FancyIndexing, you may comment this out.
Alias /icons/ "/var/www/icons/"
1<directory "="" icons"="" var="" www="">
2
3Options Indexes MultiViews
4
5AllowOverride None
6
7Order allow,deny
8
9Allow from all
10
11</directory>
This should be changed to the ServerRoot/manual/. The alias provides
the manual, even if you choose to move your DocumentRoot. You may comment
this out if you do not care for the documentation.
Alias /manual "/var/www/manual"
1<directory "="" manual"="" var="" www="">
2
3Options Indexes FollowSymLinks MultiViews
4
5AllowOverride None
6
7Order allow,deny
8
9Allow from all
10
11</directory>
1<ifmodule mod_dav_fs.c="">
2
3# Location of the WebDAV lock database.
4
5DAVLockDB /var/lib/dav/lockdb
6
7</ifmodule>
ScriptAlias: This controls which directories contain server scripts.
ScriptAliases are essentially the same as Aliases, except that
documents in the realname directory are treated as applications and
run by the server when requested rather than as documents sent to the client.
The same rules about trailing "/" apply to ScriptAlias directives as to
Alias.
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
1<ifmodule mod_cgid.c="">
2
3#
4
5# Additional to mod_cgid.c settings, mod_cgid has Scriptsock <path>
6
7# for setting UNIX socket for communicating with cgid.
8
9#
10
11Scriptsock run/httpd.cgid
12
13</path></ifmodule>
"/var/www/cgi-bin" should be changed to whatever your ScriptAliased
CGI directory exists, if you have that configured.
1<directory "="" cgi-bin"="" var="" www="">
2
3AllowOverride None
4
5Options None
6
7Order allow,deny
8
9Allow from all
10
11</directory>
Redirect allows you to tell clients about documents which used to exist in
your server's namespace, but do not anymore. This allows you to tell the
clients where to look for the relocated document.
Example:
Redirect permanent /foo http://www.andsky.com/bar
Directives controlling the display of server-generated directory listings.
FancyIndexing is whether you want fancy directory indexing or standard.
VersionSort is whether files containing version numbers should be
compared in the natural way, so that `apache-1.3.9.tar' is placed before
`apache-1.3.12.tar'.
IndexOptions FancyIndexing VersionSort NameWidth=*
AddIcon* directives tell the server which icon to show for different
files or filename extensions. These are only displayed for
FancyIndexed directories.
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon is which icon to show for files which do not have an icon
explicitly set.
DefaultIcon /icons/unknown.gif
AddDescription allows you to place a short description after a file in
server-generated indexes. These are only displayed for FancyIndexed
directories.
Format: AddDescription "description" filename
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
ReadmeName is the name of the README file the server will look for by
default, and append to directory listings.
HeaderName is the name of a file which should be prepended to
directory indexes.
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore is a set of filenames which directory indexing should ignore
and not include in the listing. Shell-style wildcarding is permitted.
IndexIgnore .??* ~ # HEADER README RCS CVS *,v *,t
AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) uncompress
information on the fly. Note: Not all browsers support this.
Despite the name similarity, the following Add* directives have nothing
to do with the FancyIndexing customization directives above.
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
DefaultLanguage and AddLanguage allows you to specify the language of
a document. You can then use content negotiation to give a browser a
file in a language the user can understand.
Specify a default language. This means that all data
going out without a specific language tag (see below) will
be marked with this one. You probably do NOT want to set
this unless you are sure it is correct for all cases.
* It is generally better to not mark a page as
* being a certain language than marking it with the wrong
* language!
DefaultLanguage nl
Note 1: The suffix does not have to be the same as the language
keyword --- those with documents in Polish (whose net-standard
language code is pl) may wish to use "AddLanguage pl .po" to
avoid the ambiguity with the common suffix for perl scripts.
Note 2: The example entries below illustrate that in some cases
the two character 'Language' abbreviation is not identical to
the two character 'Country' code for its country,
E.g. 'Danmark/dk' versus 'Danish/da'.
Note 3: In the case of 'ltz' we violate the RFC by using a three char
specifier. There is 'work in progress' to fix this and get
the reference data for rfc1766 cleaned up.
Danish (da) - Dutch (nl) - English (en) - Estonian (et)
French (fr) - German (de) - Greek-Modern (el)
Italian (it) - Norwegian (no) - Norwegian Nynorsk (nn) - Korean (kr)
Portugese (pt) - Luxembourgeois* (ltz)
Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz)
Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja)
Russian (ru) - Croatian (hr)
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage he .he
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage kr .kr
AddLanguage pt .pt
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddLanguage hr .hr
LanguagePriority allows you to give precedence to some languages
in case of a tie during content negotiation.
Just list the languages in decreasing order of preference. We have
more or less alphabetized them here. You probably want to change this.
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
ForceLanguagePriority allows you to serve a result page rather than
MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
[in case no accepted languages matched the available variants]
ForceLanguagePriority Prefer Fallback
Specify a default charset for all pages sent out. This is
always a good idea and opens the door for future internationalisation
of your web site, should you ever want it. Specifying it as
a default does little harm; as the standard dictates that a page
is in iso-8859-1 (latin1) unless specified otherwise i.e. you
are merely stating the obvious. There are also some security
reasons in browsers, related to javascript and URL parsing
which encourage you to always set a default char set.
AddDefaultCharset ISO-8859-1
Commonly used filename extensions to character sets. You probably
want to avoid clashes with the language extensions, unless you
are good at carefully testing your setup after each change.
See ftp://ftp.isi.edu/in-notes/iana/ass.../character-sets for
the official list of charset names and their respective RFCs
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
For russian, more than one charset is used (depends on client, mostly):
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
The set below does not map to a specific (iso) standard
but works on a fairly wide range of browsers. Note that
capitalization actually matters (it should not, but it
does for some browsers).
See ftp://ftp.isi.edu/in-notes/iana/ass.../character-sets
for a list of sorts. But browsers support few.
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
AddType allows you to add to or override the MIME configuration
file mime.types for specific file types.
AddType application/x-tar .tgz
AddHandler allows you to map certain file extensions to "handlers":
actions unrelated to filetype. These can be either built into the server
or added with the Action directive (see below)
To use CGI scripts outside of ScriptAliased directories:
(You will also need to add "ExecCGI" to the "Options" directive.)
#AddHandler cgi-script .cgi
For files that include their own HTTP headers:
#AddHandler send-as-is asis
For server-parsed imagemap files:
AddHandler imap-file map
For type maps (negotiated resources):
(This is enabled by default to allow the Apache "It Worked" page
to be distributed in multiple languages.)
AddHandler type-map var
Filters allow you to process content before it is sent to the client.
To parse .shtml files for server-side includes (SSI):
(You will also need to add "Includes" to the "Options" directive.)
AddOutputFilter INCLUDES .shtml
Action lets you define media types that will execute a script whenever
a matching file is called. This eliminates the need for repeated URL
pathnames for oft-used CGI file processors.
Format: Action media/type /cgi-script/location
Format: Action handler-name /cgi-script/location
Customizable error responses come in three flavors:
1) plain text 2) local redirects 3) external redirects
Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.andsky.com/subscription_info.html
Putting this all together, we can Internationalize error responses.
We use Alias to redirect any /error/HTTP_
1<error>.html.var response to
2
3# our collection of by-error message multi-language collections. We use
4
5# includes to substitute the appropriate text.
6
7#
8
9# You can modify the messages' appearance without changing any of the
10
11# default HTTP_<error>.html.var files by adding the line;
12
13#
14
15# Alias /error/include/ "/your/include/path/"
16
17#
18
19# which allows you to create your own set of files by starting with the
20
21# /var/www/error/include/ files and
22
23# copying them to /your/include/path/, even on a per-VirtualHost basis.
24
25#
26
27
28
29Alias /error/ "/var/www/error/"
30
31
32
33<ifmodule mod_negotiation.c="">
34<ifmodule mod_include.c="">
35<directory "="" error"="" var="" www="">
36
37AllowOverride None
38
39Options IncludesNoExec
40
41AddOutputFilter Includes html
42
43AddHandler type-map var
44
45Order allow,deny
46
47Allow from all
48
49LanguagePriority en es de fr
50
51ForceLanguagePriority Prefer Fallback
52
53</directory>
54
55
56
57ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
58
59ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
60
61ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
62
63ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
64
65ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
66
67ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
68
69ErrorDocument 410 /error/HTTP_GONE.html.var
70
71ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
72
73ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
74
75ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var</ifmodule></ifmodule></error></error>