首先解释一下web服务器:Web服务器通常指网站服务器,是指驻留于因特网上某种类型计算机的程序,能够向浏览器等Web客户端提供文档,[1] 也能够放置网站文件,让全世界浏览;能够放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache Nginx IIS。php
上面是官方的解释,我本身的理解是:有一台在互联网中的计算机,在该计算机上有一个软件(这个软件能够是Apache Nginx IIS这3中任意一个)。而后咱们将服务器语言编写的互联网产品(网站、web服务、web应用程序)配置在该软件上。这个样你们就能够经过浏览器等web客户端去访问咱们的互联网产品。web
ps:什么叫服务器语言,就是你们学习的asp/asp.net/php等。apache
你们不用以为web服务器很复杂,它其实就是装有一个能够相应web客户端软件的电脑而已。浏览器
今天,碰见了一个任务:不管浏览器访问的网址是什么样的(网址必定会包含/*/*/*这种格式)如:www.IP/1/2/3.com.都要转换成www.IP?x=*&y=*&z=*这种格式的网址,条件使用Apache 实现,之前也没用过这个因此将本身的学习过程记录下来。服务器
首先APAHCE有不少版本,我为了兼容性下载的是Apache2.4打开以后如图:asp.net
全部的配置文件都在conf下面,打开:学习
经查询,APACHE软件读取的都是httpd.conf这个文件里面的内容,可能你们会问了,那别的配置文件里的内容没用吗?不是的,我们打开httpd.conf这个文件:网站
你们看一下红线围起来的单词:Include ,就是这个词将别的文件的配置信息计入主配置文件httpd.conf了,在httpd.conf这个文件中你们看到许多#号,带#号的意思就是这一句被注释掉了。url
你们在httpd.conf文件中再搜索一个关键字Define SRVROOT,查询结果会看到这一句:Define SRVROOT "/Apache24",这一句的意思是你的apache软件安装在了哪,默认是c盘,若是你将安装文件夹放在了D盘,那么把这一句改为Define SRVROOT "D/Apache24"就能够了(注意这里 的路径是绝对路径)。spa
你们都访问过网站,一般是www开头的,这个叫作域名,最总域名会解析成IP如www.baidu.com最总访问的是220.181.57.216这个服务器。同一台web服务器能够发布多个网站,这只用ID来区分那个网站对应那个地址是不行的。因此这个咱们在IP的后面加入了端口号,你们搜索关键字Listen ,看到Listen 80 这就是这个服务器监听的端口号,咱们为了避免冲突把80改成 8012。
好了,如今你的apache就能够工做了,打开bin文件夹下的:
标红的exe这样你的Apache就开始工做了,我们试试,在浏览器输入127.0.0.1(这个是你电脑本身的IP,至关于localhost)看看结果:
这个就是APache的欢迎界面。证实咱们的配置成功了。
接下来开始我今天的任务,通过查询资料,解决我这个问题要用到的技术是:
接下来通过查询资料获得结果以下:首先咱们在httpd.conf文件中标了#号的几句换放开
标红的4句话放开(别问为啥了,apache软件的设计者顶的……),这样一来,咱们的apache软件就是具有了反向访问别的url的功能,可是到底什么样的url咱们去让它必须访问咱们定义的url呢?这就须要规则,规则在下面的文件中定义
extra文件中的httpd-vhosts.conf文件,打开httpd-vhosts.conf文件将下面的这一段话写入你的文件:
<VirtualHost _default_:8012>
DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
<IfModule mod_rewrite.c>
RewriteEngine On
rewritecond ^/abc/(.*)/(.*)/(.*)
RewriteRule http://www.baidu.com [P]
</IfModule>
</VirtualHost>
接下来解释下:RewriteEngine On 开启重定向
rewritecond:什么样的url 咱们去重定向
RewriteRule 重定向到哪(这里是百度)
好告终果是什么呢?咱们的目的是若是url 是相似 127.0.0.1:8021/abc/1/1/1 这种格式那么访问到的内容是百度首页.
你们也动手试试吧。