Apache根目录下的子目录说明:
Apache的各种功能特性主要是由配置文件httpd.conf决定的。
- 配置文件的语法\
配置文件都是使用Linux的脚本风格。以“#”作为注释符,以反斜杠“\”作为续行符号。文件的每一行包含一个指令,告诉Apache服务器以某种特定的方式完成某一项特定的任务。
配置文件中的指令是不区分大小写的,但指令的参数通常是大小写敏感的。
- Apache是模块化的服务器,想要扩展新功能可以作为模块动态加载。
动态加载的指令:LoadModule
有效范围:整个Apache服务器
例子:LoadModule rewrite_module modules/mod_rewrite.so
该条指令表示Apache在运行的时候将“重写模块”动态加载到Apache服务器中。
可以使用<IfModule>指令来告诉Apache服务器以下指令只用于特定的模块。
例子:
<IfModule dir_module>
DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>
只适用于dir_module该模块
通过把指令嵌入到<Directory>、<DirectoryMatch>、<Files>、<FilesMatch>、<Location>、<LocationMatch>配置段中,可以限制指令的作用域为文件系统中的某些位置或特定的URL。
ServerRoot "d:/wamp/bin/apache/apache2.2.17" #设置Apache服务器目录的绝对路径
#Listen 12.34.56.78:80 #允许Apache绑定指定的IP或端口,实现对其监听
如:
Listen 127.0.0.1:80
Listen 127.0.0.1:8080
这样,通过127.0.0.1:8080也可以访问本地的http服务器
Listen 80 #Apache绑定指定的端口80
DocumentRoot "d:/wamp/www/" #设置Web文档的根目录,默认存放网页位置 .htaccess文件
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。国内的大多数虚拟主机就没有这个功能。我所知道的提供这个功能的有康盛世纪(就是Discuz的论坛服务商)。
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。
笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
.htaccess文件的语法与配置文件相同,该文件中指令的作用域是存放她的那个目录及其所有子目录。
每次请求都会读取.htaccess文件,所以对这些文件的修改会立即生效,无需重启Apache服务器。服务器管理员可以在httpd.conf主配置文件中使用AllowOverride指令来决定哪些指令可以再.htaccess文件中生效。