WAMP的一些配置与使用心得(APACHE)
说实话,我感觉apache的配置真的还是蛮复杂的,感觉好像又在学一种语言,让我用比较庞大的概念来讲述这些东西,我也没办法做到
就以实际应用出发出发,简单的说一说我的使用过程吧
场景一:你查看服务器访问记录的时候,发现有某一个IP段访问量特别的不正常,疑似黑客入侵,这个时候你需要怎么办?
找到你的http.conf配置文件,找到类似于这样的片段
<Directory "你的网站根目录">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Deny from XXX.XXX.XXX.XXX
</Directory>
最下面的Deny from 就是你需要屏蔽的IP地址了
场景二:你的服务器下面,有多个网站的目录,而你访问的时候却并不想用 域名/目录 这样的方式,你希望用 二级域名/域名 这样的方式来访问你的多个网站
这个时候你需要允许用到虚拟主机
如何配置apache虚拟主机
首先在http.conf文件中找到# Virtual hosts
把Include conf/extra/httpd-vhosts.conf的注释去掉,当然httpd-vhosts这个文件名是可以修改的,你要是觉得这个名字不好,大可以改成hao-vhosts.conf,只要与vhost目录下的文件名对应就行了
然后需要vhost目录下的httpd-vhosts.conf这个文件中加入这样的设置
<VirtualHost *:80>
DocumentRoot D:/wamp/www
ServerName xxx.xxx.com
DirectoryIndex index.php
</VirtualHost>
DocumentRoot 代表你的网站的绝对路径
ServerName 表示访问该服务器的域名
DirectoryIndex 路径初始文件,利用这个可以默认访问该目录下的index.php
虚拟机可以配置多个,可以解析不同的域名来对应你不同的网站目录
场景三:域名重定向,假设你原来的网站搬家了,原来的地址是www.a.com,但是之后变成了www.a.com/real这个子目录下,如果用户继续请求原有网址没有数据,肯定会拜拜损失用户的,所以有域名重定向功能,当用户访问www.a.com的时候,默认把地址重定向到www.a.com/real这个路径下面,就能很好的解决问题了
如何设置域名重定向呢,首先要在http.conf中做一个设置开启域名重定向,其次你还得懂正则表达式
找到LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的#,
然后在你的网站根目录创建一个.htaccess的文件,这个文件在windows可以用@echo off clear > .htaccess 来创建,linux下直接vim .htaccess就可以了,然后首先要写上
RewriteEngine On 表示重写引擎开启
然后是RewriteCond 定义一条规则条件
然后是RewriteRule 重写规则 例如
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.a.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.b.com [NC]
RewriteRule ^(.*)$ localhost/a/index.php$1 [R=301,L]
R 强制外部重定向,后面可以代301或302跳转。
L 表明当前规则是最后一条规则,停止分析以后规则的重写。(如果满足条件的话)
OR 或的意思,上例中既是www.test.net.cn或test.net.cn开头的域名。
NC 不区分大小写。
$N 引用RewriteRule模板中匹配的相关字串 就是可以保留原域名中的/后面的参数
这种flag有很多,更多详细配置可以阅读官方文档
http://httpd.apache.org/docs/2.2/rewrite/flags.html
感觉写的不是很好吧,毕竟实力有限,我对apache的配置了解的不够深刻,所以没能更加清楚的描述出来,总之这篇文章待续吧