URL重写配置

为站点根目录配置URL重写和相对目录配置URL重写: ­

都要配置的是打开apache的配置文件httpd.conf,找到<Directory “网页文件根目录位置”>,然后再下面将AllowOverride None改成AllowOverride All,当然最重要做的是讲#LoadModule rewrite_module modules/mod_rewrite.so前面的#号去掉(去掉注释). ­

对于站点根目录有效的重写,需要在网站根目录下面建立一个文件.htaccess文件,内容为: ­

RewriteEngine On ­

RewriteBase / ­

RewriteRule ^([0-9]+)\.html$ test.php?id=$1 ­

对于相对目录URL重写配置,也需要在网站目录下面建立一个文件.htaccess文件,内容为: ­

RewriteEngine On ­

RewriteRule ^([0-9]+)\.html$ test.php?id=$1 ­

和上面相比,去掉中间RewriteBase /这行代码即可,对于这个.htaccess文件的修改,好处是不需要重新启动apache服务器就可以生效。 ­

注意:对于windows服务器,不能直接建立.htaccess文件,因为windows规定文件必须有文件名,而.htaccess文件没有,我们可 以通过在cmd下的rename命令建立。方法如下:建立一个htaccess文件(没有扩展名),然后进入cmd中庸rename命令修改 为.htaccess文件(如果不熟悉rename命令,可以通过help rename查看具体命令使用方法)。就可以了,然后用记事本编辑就万事OK了。­

当然apache的url重写还有更强大的功能,比如可以为某个目录配置重写规则等,要多去研究下了­

app2.5.10配置多虚拟主机的方法

Appserv配置多站点教程第一步:下载Appserv并安装

我下载的是Appserv-Win32-2.5.10版本,下载后直接双击并根据提示安装即可。

Appserv配置多站点教程第二步:修改Windows系统hosts文件

我的Appserv安装环境是Windows7 64bit,为什么首先要修改hosts文件呢?这是因为一般情况下Appserv的安装调试都是在本机上进行的,当使用Appserv配置多站点时,域名指向都是127.0.0.1,你需要对不同的域名进行映射,否则即便配置完毕也是无法访问的,除非你有公网IP,并通过DNS进行映射。

找到WINDOWS\system32\drivers\etc\hosts文件并打开,找到127.0.0.1 localhost,并添加需要映射的测试站点域名,比如:

127.0.0.1    www.1.com127.0.0.1    www.2.com

保存hosts文件。

Appserv配置多站点教程第三步:修改Apache配置文件,启用虚拟主机配置

在Appserv安装目录中找到Apache2.2\conf目录,打开apache配置文件httpd.conf,找到# Virtual hosts

#Include conf/extra/httpd-vhosts.conf

中的#去除。

由于Appserv配置中Apache配置是以定制方式存在,上述语句代表Apache启用虚拟主机配置。同时Appserv多站点配置功能是以虚拟主机的方式实现,你可以一并将httpd配置文件中的

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

#去除(经过我的测试,其实此Apache Module加不加载没太大关系)

Appserv配置多站点教程第四步:修改Apache虚拟主机配置

打开conf/extra/httpd-vhosts.conf配置文件,文件中本身存在两条虚拟主机配置记录,只要稍作修改即可。

将ServerAdmin(邮件地址)、DocumentRoot(网站根目录,我设定的目录为”C:/AppServ/www/wwwleapsoulcn/”和C:/AppServ/www/wwwphptestcn/) 、ServerName(站点域名信息)、ServerAlias(站点域名别名)配置选项设置为你需要设定的信息即可。Appserv配置多站点实例如下:

<VirtualHost *:80>
ServerAdmin 你的邮箱地址
DocumentRoot “C:/AppServ/www/1”
ServerName www.1.com
ServerAlias www.1.com
ErrorLog “logs/dummy-host.x-error.log”
CustomLog “logs/dummy-host.x-access.log” common
</VirtualHost><VirtualHost *:80>
ServerAdmin 你的邮箱地址
DocumentRoot “C:/AppServ/www/2”
ServerName www.2.com
ErrorLog “logs/dummy-host2.x-error.log”
CustomLog “logs/dummy-host2.x-access.log” common
</VirtualHost>

备注:ServerName对应的域名要与hosts文件定义的域名要一致,不然有可能会出现怎么设置都是访问的第一个虚拟主机哦

Appserv多站点配置提示:如果同时配置多个虚拟主机,务必确保第一条虚拟主机记录不可缺失ServerAlias选项,否则配置不会成功。

最后保存conf/extra/httpd-vhosts.conf配置文件。

重启Apache时注意请在用管理员身份运行CMD模式下通过net start apache2.2net stop apache2.2方式重启Apache。

此时通过IE以域名方式即可访问使用Appserv配置的多个站点了。

上述方法是以域名方式使用Appserv配置多站点访问功能,如果以IP方式也是可以实现此配置功能,区别在于需要使用不同的端口。除了原有的上述httpd.conf配置外,需要再Listen 80语句后,添加需要侦听的端口,比如:

Listen 8080
Listen 8081

然后将conf/extra/httpd-vhosts.conf配置文件中的<VirtualHost *:80>修改为<VirtualHost 对应IP:对应侦听端口>即可,其他配置不变。

最后删除hosts文件中之前设定的配置,重启Apache服务即可。

如果还会出现上面这个问题或者域名访问没用,那就要再设置一下权限了,找到

<Directory />
Options FollowSymLinks ExecCGI Indexes
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
</Directory>

修改用红色标示的字符即可解决。

<Directory />
Options FollowSymLinks ExecCGI Indexes
AllowOverride None
Order deny,allow
Allow from all
Satisfy all
</Directory>

至此,怎么使用Appserv以域名或IP地址方式实现配置多站点访问教程就介绍完了。