phpstudy环境Apache配置下实现https访问和301重定向

phpstudy环境Apache配置下实现https访问和301重定向
phpstudy环境Apache配置下实现https访问和301重定向

phpStudy 2016环境下安装SSL证书教程

题外话:在网站上安装SSL证书,首先你要有这个证书,此教程的用到的私钥server.key,证书server.crt和根证书ca.crt都是自己做的,具体看“000Windows系统下制作公钥私钥ssl 证书.doc”文档。

教程开始:

以下都是在:Phpstudy2016 Apache环境下

第一种方法(简单,快速,推荐)

第一步:【打开phpstudy】》【其他选项菜单】》【PHP扩展】》【php-openssl】前面勾选上。

第二步:【打开phpstudy】》【其他选项菜单】》【站点域名管理】》【站点域名设置】网站域名添127.0.0.1(根据需要设置)

第三步:把server.crt ca.crt和server.key三个文件后放到d:/ssl 目录下。

第四步:打开D:/phpStudy/Apache/conf/httpd.conf

在最后面添加SSL配置.

Listen 443

DocumentRoot "D:/phpStudy/WWW"

ServerName 127.0.0.1

ServerAlias 127.0.0.1

SSLEngine on

SSLCertificateFile "d:/ssl/server.crt"

SSLCertificateKeyFile "d:/ssl/server.key"

SSLCertificateChainFile "d:/ssl/ca.crt"

完成以上配置后,重启Apache,没错误的话,就可以用http://或https://开头访问

如果此时能够正常启动,则说明添加的配置有错误(是不是重复监听了?证书路径对不对?证书是否有效?),请看错误日志(D:\phpStudy\Apache\logs\error.log),直到能够正常启动apache

第五步:http301重定向到https

完成第四步,还没有大功告成,因为访问http时还不会自动在网址前加https,怎么办?继续往下看

——创建一个文件名为.htaccess的文件放在网站根目录,可以用记事本新建一个空白文件,保存另存为时,在文件类型上选择所有文件就可以了。 .htaccess文件内容如下:(,

RewriteEngine on

RewriteBase /

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

注意:.htaccess是Apache服务器下的配置文件,如果你的服务器或者虚拟主机不是Apache环境则不适用此方法

补充:

Apache全局/局部https访问配置方法

一、全局https访问

1.找到apache安装目录的httpd.conf配置文件,进行一下操作:

2.#LoadModule rewrite_module modules/mod_rewrite.so(把代码前面的#号去掉);

3.在httpd.conf加入代码:

RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^(.*)?$ https://%{SERVER_NAME}$1 [L,R]

重启apache即可。

二、指定路径访问使用https访问

1.在httpd.conf加入代码:

RewriteEngine on

RewriteBase /test

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

2.重启apache即可。

什么是302重定向及操作方法

301和302 Http状态有啥区别? 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:301 redirect: 301 代表永久性转移(Permanently Moved),302 redirect: 302 代表暂时性转移(Temporarily Moved ),当然Http 状态200 标示没有任何问题发生。 这两种转移在使用的时候有啥好处或者问题? 301 重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。302 重定向是临时性转移。 在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对https://www.360docs.net/doc/b815221377.html,以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。 研究搜索引擎优化(SEO)的人,应该都知道,301,302使用不当,或者灵活使用会有不错的效果的,比如参看下面文章: 302转向与网址劫持 301转向和网址规范化301重定向的实现方法 51window提供的301转向的代码 一个网站十几个域名的重定向经验谈 几个常用的301重定向 如果是运维人员,配置WEB服务器的一些设置就可以实现跳转,比如下面一些关于IIS实现重定向的文章 将请求重定向到文件、目录或程序(IIS 6.0) https://www.360docs.net/doc/b815221377.html,/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/fbcccfce-6695-4f92-bd55-869d85ff49fb.mspx?mfr=true 重定向参考(IIS 6.0) https://www.360docs.net/doc/b815221377.html,/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/41c238b 2-1188-488f-bf2d-464383b1bb08.mspx?mfr=true 其他WEB服务器也可以通过设置实现跳转,我就不罗列了。 从技术人员来说我们比较常用的跳转方法有以下几种: 我们使用Fiddler 工具来监控的下面提到的几种方法,看跳转过程中HTTP状态码是301?302?200?: 方法1:Response.Redirect("Test.aspx"); 状态码302 临时性跳转 方法2: meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。 方法3:Server.Transfer("Test.aspx"); 这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。

php环境如何做301重定向

php做定向简单。 你试下这个操作,应该可以的: 操作方法: 第一步、建立tiaozhuan.asp文件。使用记事本或Dreamweaver建立名称为tiaozhuan.asp的网页文件,并清除里面的所有内容输入一下内容: ************************不包含此行************************************ <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location","https://www.360docs.net/doc/b815221377.html,/index.html" Response.End %> ************************不包含此行************************************ 注意:http://后面的网址请更改为你网站的网址,首页文件名请更改为你现在使用的网站首页的文件名。保存tiaozhuan.asp文件并退出。 第二步、设置默认首页。进入空间管理面板,不同的空间会有不同的操作方法,但都是大同小异,我们要在设置在里面找到设置默认首页的功能。在默认首页文件名列表的最前面输入tiaozhuan.asp然后确定即可。 第三步、文件上传。将刚刚建立的tiaozhuan.asp文件用FTP上传到你的空间中。 第四步、打开首页查看是否成功。 有一个细节不知道大家有没有注意到,就是我没有通过在首页文件中直接添加上面的代码,而是采用重新建立文件的方法来实现301重定向的功能。当然,有的朋友也许是动态网站或真正的首页文件不是这个名称,大家可以按照网站本身的条件进行更改。另外,经过笔者测试,如果将上面的代码加入到ASP首页文件中有时会造成错误的现象,那就是“死循环”。因为上面的代码如果加入到ASP首页文件的最顶端就会造成打开网站先访问首页文件然后执行首页文件最顶端的代码进行跳转到自身,然后再次执行“先访问首页文件然后执行首页文件最顶端的代码进行跳转到自身”所以就会出现浏览器忙乱的现象,无法打开网页。如果将大门放入到ASP首页文件的最顶端,也会出现类似上面的现象,所以我们选择重新建立文件进行301重定向。 在这个实战中,我没有将301重定向到网站的根目录,而是直接定向到网站的index.html文件,大家也许会感到我的操作方法和别人的描述不太一样。因为这样做可以将所有的权重指向index.html页面,会使网站的首页排名又一定程度的权重提升,避免了权重的分散。再有一点原因就是刚才提到的“死循环”了。 综上,请按照第一至第四步进行操作,即可完美的完成网站定向,海纳百川,权重统一。大家可以触类旁通、自行思考,如果有N个域名指向同一个网站,那么是不是也可以通过这个方法来集中权重,避免权重不必要的流失呢?

servlet请求转发的三种方式

servlet请求转发的三种方式 servlet中的请求转发主要有三种方式: 1、 forward:是指转发,将当前request和response对象保存,交给指定的url 处理。并没有表示页面的跳转,所以地址栏的地址不会发生改变。 2、 redirect:是指重定向,包含两次浏览器请求,浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。 3、 include:意为包含,即包含url中的内容,进一步理解为,将url中的内容包含进当前的servlet当中来,并用当前servlet的request和respose来执行url中的内容处理业务.所以不会发生页面的跳转,地址栏地址不会发生改变。 测试如下: 首先编写三个html界面:分别是登录界面:login.html;登录成功界面:success.html;登录失败界面:fail.html. 之后,处理登录逻辑的servlet类如下: Java代码

运行后如果输入正确的用户名密码,则执行include方法,界面显示:include 包含。登录成功!并且地址栏地址未改变,若是输入错误登录名或者密码,界面显示:登录失败!并且地址栏地址改变。其中要注意的是sendRedirect方法中在要跳转的页面url前必须加上当前web程序路径名,这个路径通过request.getContextPath()可以得到。 如果吧其中include方法改为forward方法: Java代码 登录时输入正确信息,则跳转的页面地址不变,显示:登录成功!不包含url中的内容。 总结如下: redirect与include、forward的区别在于是不是同一个Request,redirect会有两次交互。 include与forward的区别在于输出的内容,include包含本身servlet与跳转页面内容的结果,而forward不包含本身servlet的内容。

转发与重定向的区别

转发与重定向的区别 我们知道,请求转发和请求包含都是在一个请求内,涉及到多个Servlet 。既然转发和包含都在一个请求内,那么说明多个Servlet 共用同一个request 对象和response 对象。这个时候就存在request 域。 1. request 域 Servlet 的三大域对象:request ,session ,application 。其中request 域是三大域对象中范围最小的域对象,application 对象其实就是ServletContext 对象,在ServletContext 功能详解中我们对它的域功能做了详细的介绍;session 域会在后面学习。 request 域只会在请求转发和请求包含时存在。它的域范围就是整个请求链,如图1-1所示。例如:由AServlet 请求转发到BServlet ,这时在AServlet 中向request 域中存放数据,然后在BServlet 中从request 域中获取数据。如果BServlet 又转发给其他的Servlet ,那么在其他Servlet 中也可以从request 域中获取数据。转发过程中经过的这些Servlet 都在一个请求链中。 客户端AServlet BServlet CServlet 请求AServlet 转发转发 响应 请求链 图1-1 请求转发 2. request 域相关方法介绍 以后只要是域对象,那么它必然会有以下三个方法: ● void setAttribute(String name,Object value) 该方法是向域中保存域属性,例如:setAttribute(“username ”,”zhangsan ”),其中,username 是域属性的名称,zhangsan 是域属性的值。如果多次调用该方法,且属性名称相同,那么后保存的数据会覆盖先保存的数据。 ● Object getAttribute(String name) 该方法是根据属性名称从域中获取域属性的值,如果之前没有调用setAttribute()方法保存数据,那么调用getAttribute()方法返回值是null 。 ● void removeAttribute(String name) 该方法是从域中移出指定名称的域属性,如果该名字的域属性不存在,则该方法什么都不

Apache服务器配置实验报告

在Linux下配置Apache服务器 一、实验目的 完成本次实训,将能够: ●配置基本的Apache服务器 ●配置个人用户Web站点。 ●配置虚拟目录别名功能。 ●配置主机访问控制。 ●配置用户身份验证功能.。 ●配置基于IP地址的虚拟主机. 二、实验环境 1、RedHat Linux4AS. 2、Apache 2.0 三、实验内容 1.配置基本的Apache服务器 2.配置个人用户Web站点。 3.配置虚拟目录别名功能。 4.配置主机访问控制。 5.配置用户身份验证功能.。 6.配置基于IP地址的虚拟主机。 四、实验要求 在Linux操作系统下配置Apache服务器。 五、注意事项 1.在修配置文件下注意区分大小写、空格。 2.在每次重新开机后都必须启动Apachec服务器。 3.在每次修改完主配置文件后保存起来,必须重启Apachec服务器,如果不重启会 导致配置无效,最终导致实验失败。 六、实验步骤 1、检测是否安装了Apache软件包: A、首先为服务器网卡添加一个固定的IP地址。 B、在Web浏览器的地址栏中输入本机的IP地址,若出现Test Page测试页面(该 网页文件的默认路径为var/www/html/index.html)如下图1所示就说明Apache 已安装并已启动。

另一种方法是使用如下命令查看系统是否已经安装了Apache软件包: [root@rhe14~]# rpm –aq | grep httpd Httpd-suexec-2.0.52-9.ent Httpd-manual-2.0.52-9.ent System-config-httpd-1.3.1-1 Httpd-devel-2.0.52-9.ent 出现以上内容表明了系统已安装Apache软件包。 2、安装Apache软件包 超级用户(root)在图形界面下选择“应用程序”|“系统设置”|“添加/删除应用程序”命令,选择“万维网服务器”软件包组,在单击“更新”按钮就可以安装与Apache相关的软件包。 3、Apache的基本配置 (1)打开终端输入[root@rhe14~]# /etc/rc.d/init.d/httpd start //启动Apache 或者 [root@rhe14~]# apachectl start //启动Apache [root@rhe14~]# apachectl stop //停止Apache服务 [root@rhe14~]# apachectl restart //重启Apache服务 [root@rhe14~]# apachectl configtest //测试Apache服务器配置语法(2)在httpd.conf将Apache的基本配置参数修改、将一些注释的语句取消注释,或将某些不需要的参数注释掉。 (3)将包括index.html在内的相关网页文件复制到指定的Web站点根目下(var/www/html/index.html) (4)重启httpd进程 (5) 在Web浏览器下输入配置的ip地址出现如下图2,那表明基本配置成功了:

nginx不带www到www域名的重定向

对于单一入口的程序如何做301重定向 由于网站的url由动态改为了伪静态,原先的动态网址依然能够访问,导致原先的url的权重无法转移,所以对原来的url做301重定向,并在百度站长中提交网站改版请求。 网上的教程都是直接根据文件重定向的,对于单一入口的程序不适用,所以写下次教程。 示例: if ($args ~* mod=item&act=view&id=(\d+) ) { rewrite ^/(.*)$ http://$host/item/$arg_id.html? permanent; } $args是当前url问号后面的部分,相当于$query_string $arg_id是id的值,格式为$arg_ rewrite是url重写命令 permanent代表的是返回301永久重定向状态码 $host为当前网站的域名部分 结尾的问号代表不会将url后面的参数一起带过去 ^和$是代表的是正则匹配 if条件中的(\d+)代表的是数字参数,如777 注意:nginx中if命令不能嵌套,不能有多条件 if条件中的等号只有一个 注意if的空格问题

if条件中可以有多条url重写语句 重定向是基于文件的,示例中是适用于index.php?mod=a&act=b的结构如:rewrite 文件A 重定向到某地址 示例: rewrite ^/good.php$ http://$host permanent; rewriet ^/good1.php$ http://$host/ permanent; 如果需要对网站的域名进行重定向,可参考以下示例: 将不带www的域名重定向到带www的域名 server{ ...... server_name https://www.360docs.net/doc/b815221377.html, https://www.360docs.net/doc/b815221377.html, ...... if ($host = https://www.360docs.net/doc/b815221377.html,) { rewrite ^(.*)$ https://www.360docs.net/doc/b815221377.html, permanent; } }

正确配置301的各种方法

这篇文章列举了四种情况下,配置网站301全站重定向的方法。这四种方法均是经过我个人网站实践验证过,绝对可用。下面的步骤中的例子,设置的是把不加www的域名转向到加www的域名。 1.第一种情况,如果你有服务器或者vps,且系统是windows系统的。 在iis下,可以很简单的设置实现全站重定向。 具体方法是:在VPS里把https://www.360docs.net/doc/b815221377.html, 域名的网站搭建好以后,按照同样的方式搭建一个https://www.360docs.net/doc/b815221377.html,的网站。然后打开“iis”。在https://www.360docs.net/doc/b815221377.html,的网站上鼠标右键打开选择属性,选择“主目录”标签,然后按照这个图设置 2.第二种情况,如果你的系统是Linux的。 做整站301跳转,很简单。如下修改文件httpd.conf或者.htaccess文件保存就可以了: RewriteEngine On RewriteCond %{HTTP_HOST} ^https://www.360docs.net/doc/b815221377.html,[NC] RewriteRule ^(.*)$ https://www.360docs.net/doc/b815221377.html,/$1 [L,R=301] 3.第三种情况,如果你是虚拟主机用户,如果你有子目录,恭喜你,也可以整站301 重定向。具体方法是: 1.新建404.asp,把下面代码放到新建的404文件中保存。 代码 <%@ Language=VBscript %> <% Dim PageURL PageURL="http://"&Request.ServerVariables("HTTP_HOST")&request.ServerVar iables("URL")&"?"&Request.ServerVariables("QUERY_STRING") PageURL = Replace(PageURL, "https://www.360docs.net/doc/b815221377.html,/404.asp?404;https://www.360docs.net/doc/b815221377.html,: 80","") //修改为你的老域名 Response.Status="301 Moved Permanently"

servlet的两种重定向方法的区别及应用

servlet的两种重定向方法的区别及应用 一问题:在servlet/JSP编程学习中,发现有两种方法可以实现服务端输出重定向,一种是通过forward方法(例如JSP中的),另一种则是通过运用 javax.servlet.http.HttpServletResponse接口的sendRedirect方法(例如response.sendRedirect(“OtherPage.jsp”);这两种方法有什么区别和联系呢?让我们看下面的分析。 二分析: 该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区(buffer)的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在 之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意. 补充知识:输出缓冲区 缺省情况下:服务端要输出到客户端的内容,不直接写到客户端,而是先写到一个输出缓冲区中.只有在下面三中情况下,才会把该缓冲区的内容输出到客户端上:1该JSP网页已完成信息的输出 2输出缓冲区已满 3JSP中调用了out.flush()或response.flushbuffer() 输出缓冲区的大小可以用:<%@page buffer="none"|"nkb"%>或 response.setBufferSize()设置,如下: 1设置输出缓冲区的大小为1KB。<%@page buffer="1kb"%>或 response.setBufferSize(1); 2设置输出缓冲区的大小为0,即不缓冲。<%@page buffer="none" %>或response.setBufferSize(0); 用response.getBufferSize()或out.getBufferSize()可取的输出缓冲区的大小,单位为字节. 用response.isCommitted()可检查看服务端是否已将数据输出到客户端. 如果返回值是TRUE则已将数据输出到客户端,是FALSE则还没有。 (2)response.sendRedirect(“OtherPage.jsp”) 该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,让浏览器对在location中指定的URL提出请求,使浏览器显示重定向网页的内容。该方法可以接受绝对的或相对的URLs。如果传递到该方法的参数是一个相对的URL,那么Web container在将它发送到客户端前会把它转换成一个绝对的URL。如果地址是相对的,没有一个’/’,那么Web container就认为它是相对于当前的请求URI的。 因为这个方法是通过修改HTTP协议的HEADER实现的重定义功能,而下面的方法也能改变HTTP HEADER属性,他们的原理是一样的. <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

LinuxApacheWeb服务器配置教程

LinuxApacheWeb服务器配置教程 Linux阿帕奇网络服务器配置教程 阿帕奇的主要特点 根据著名的万维网服务器研究公司进行的一项调查,全世界50%以上的万维网服务器使用阿帕奇,排名世界第一。 阿帕奇的出生非常戏剧化。当NCSA万维网服务器项目停止时,那些使用NCSA万维网服务器的人开始用他们的补丁来交换服务器,他们很快意识到有必要建立一个论坛来管理这些补丁。就这样,阿帕奇集团诞生了,后来这个集团在NCSA的基础上建立了阿帕奇。 阿帕奇的主要特点是: 。可以在所有计算机平台上运行; 。支持最新的HTTP 1.1协议; 简单而强大的基于文件的配置; 。支持通用网关接口CGI 。支持虚拟主机; 。支持HTTP认证; 。集成的Perl脚本编程语言; 。集成代理服务器; 。拥有可定制的服务器日志;。支持服务器端包含命令。支持安全套接字层。用户会话过程的跟踪能力;支持FastCGI。支持Java小服务程序。 安装Apache流程

安装Apache 接下来,我们将开始征服阿帕奇的漫长旅程。我们将一步一步地学习使用Apache,从介绍到掌握,通过需求的一步一步的例子。 系统需求 运行Apache不需要太多的计算资源。它运行良好的Linux系统有6-10MB的硬盘空间和8 MB的内存。然而,单独运行Apache可能不是您想要做的。更有可能的是,您希望运行Apache来提供WWW服务,启动CGI流程,并充分利用WWW所能提供的所有惊人功能。在这种情况下,您需要提供额外的磁盘空间和内存空间来反映负载要求。换句话说,它不需要太多的系统资源来启动WWW服务,但是它需要更多的系统资源来为大量的客户提供服务。获取软件 你可以呆在 错误日志命令用于指定错误日志文件名和路径。 命令格式:错误日志[日志文件名] 示例:错误日志/var/ srm.conf Srm.conf是一个资源配置文件,它告诉服务器您想在WWW站点上提供什么资源,在哪里以及如何提供这些资源。 DocumentRoot命令指定主文档的地址。 命令格式:文档根[路径] 示例:文档根目录/主页/ UserDir命令,用于指定个人主页的位置。如果你有一个用户测试,

IIS设置301重定向

IIS设置301重定向 IIS服务器下做301永久重定向设置方法。 IIS6设置301重定向: 1.新建一个站点,对应目录如E:\wwwroot\301web。该目录下只需要1个文件,即index.html或者加个404.htm。绑定要跳转的域名,如图: 2.在IIS中选中刚才我们建立的站点,右键-属性-主目录,选择重定向到,输入

网址如:xxxx,同时注意选中下面的资源的永久重定向选项。 3.到此,我们已经完成了将xxxx这个域名301重定向到xxxx的工作。 注意问题: “上面输入准确的URL(X)”这个选项建议不要选。 不选的结果是: 当输入xxxx转到了xxxx, 当输入xxxx/sanwen/suibi/时,转到了xxxx/sanwen/suibi/。 选上的结果是: 当你输入xxxx或者xxxx/sanwen/suibi/都会转到xxxx。 好了,如果只是想把不带www的转到带www的或者其他没有用过的域名转到正在使用的域名,这样就可以了。但是如果你要的域名已经做过网站,想要把权重传递给新网站,可以参考下面这个方法: 第一步同上,主要是第二步,如图:

注意红色字体的部分,在重定向到地址的后面多了$S$Q字符,即写成了xxxx$S$Q。“上面输入准确的URL(X)”这个选项也打了勾。 对于$S$Q字符,这里解释一下: $S 将请求的URL 的后缀传递给新的URL。后缀是用重定向的URL 代替之后,初始URL 中所保留的部分。 如果未设置 EXACT_DESTINATION 标志,则结果目标URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。 $Q 将初始URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号(?)。如果不加上$S$Q字符的话,内页的301都会跳转到首页,加上$S$Q字符的目的就是内页也能准确的跳转到新域名的对应内页。 好了,这样就完成了301永久重定向的设置,设置好之后最好能测试下是否返回的是301值,推荐个网址:seoconsultants/tools/headers。 百度对301的反应并不像想象中那么慢,第二天就收录了xxxx这个页面,快照最新。当然,快照的内容是xxxx的内容,而不是301web里index.html的内容。 IIS7设置301重定向: 非常简单。选择中网站,”HTTP重定向“,勾选”将请求重定向到此目标“,

转发和重定向

1.格式 这是一个链接 这是一个段落

这是一个块元素

换行
在网页中加一条横线 :这是定义了一个???.css格式文件 =============================================== 1、转发和重定向的区别: 1)地址: 转发的地址必须是同一个应用内部的各个组建。 重定向的地址没有限制。 2)能否共享request 转发可以 重定向不行 3)浏览器地址栏的地址是否变化 转发不变 重定向不会 4)事件是否处理完毕 转发是一件事未做完。 重定向是一件事已经做完。 2、状态管理: 2)怎样进行状态管理: 第一种方式:在客户端管理用户的状态 (cookie) 第二种方式:在服务器端管理用户的状态 (session) 3)cookie: a,什么是cookie? 浏览器在访问服务器时,服务器将一些数据以set—cookie消息头的形式发送给浏览器,浏览器会将这些数据(内存或者硬盘)保存起来,当浏览器再次访问服务器时,会将保存的数据会以cookie的消息头的形式发送给浏览器。通过这种方式可以管理用户的状态。 b,怎样去创建cookie? Cookie cookie=new Cookie(String name, String value);cookie中保存键值对 response.addCookie(cookie);服务器从cookie中读取数据 c,查询cookie //如果没有cookie,则返回null Cookie[] cookies=request.getCookies(); String name=cookie.getName();

Linux下Apache服务器的安装和配置

【实验8】Apache服务器的安装和配置 一、实验目的: 1.掌握Apache Web服务器的安装和配置。 2.使用虚拟主机在同一台服务器上架设多个网站。 二、【实验环境】 1.虚拟机软件VM Ware 6.0,Redhat Enterprise Linux虚拟机或光盘镜像文 件。 2.2台以上机器组成的局域网。 三、【实验原理】 (一)Apache服务简介 Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。 Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web 服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。 (二)虚拟主机 所谓虚拟主机,也叫“网站空间”就是把一台运行在互联网上的服务器划分成 多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务 器(支持WWW、FTP、E-mail等)功能。一台服务器上的不同虚拟主机是各自 独立的,并由用户自行管理。 虚拟主机技术是互联网服务器采用的节省服务器硬体成本的技术,虚拟主机 技术主要应用于HTTP服务,将一台服务器的某项或者全部服务内容逻辑划分 为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬体资源。如果 划分是系统级别的,则称为虚拟服务器。

(三)Linux中虚拟主机的分类 1、基于IP地址的虚拟主机 如果某公司有多个独立的IP地址可用,那么可以用不同的IP地址来配置虚拟主机。 2、基于端口的虚拟主机 如果只有一个IP地址,但是要架设多个站点,可以使用端口来区分,每个端口对应一个站点。这样配置的话,用户在访问的时候必须在 URL中指明端口号才能访问相应的网站。 3、基于名称的虚拟主机 使用基于IP地址或者端口的虚拟主机,能够配置的站点数目有限,而使用基于名称的虚拟主机,可以配置任意数目的虚拟主机,而不需要 额外的IP地址,也不需要修改端口号。 四、实验步骤 本实验请勿使用【系统】→【管理】→【服务器设置】中的【HTTPD】工具来配置,否则后果自负! (一)Apache服务器的启动 1、测试是否已安装Apache服务器: [root@localhost ~]#rpm –qa httpd 2、启动Apache服务器: [root@localhost ~]#service httpd start (二)基于端口的虚拟主机的配置 1、在/etc/httpd目录中,建立一个名为vhostconf.d的子目录,用来存放虚拟 主机的配置文件。 2、在/var/www目录中,建立一个名为websites的子目录,用于存放网站源 文件;在website目录下再建立ipvhost1和ipvhost2文件夹,用于区分各 个站点。

301和302重定向的区别

重定向的方法其实是有很多的,但不同的方法会出现不同的结果,而且区别也是非常大的。目前,根据WEB服务器返回给浏览器的HTTP状态码,重定向主要分为301永久重定向、302临时重定向,两种重定向是根据不同情况来做的,下面就详细的对两种重定向详细的说明一下。 ①:301永久重定向 首先,301永久重定向。这个状态码告诉用户、搜索引擎、浏览器,该资源已经永久性的移动到另一个位置(旧版本页面永久重定向到新版本页面),而且没有恢复原位的打算。301永久重定向最适合目录转移,推荐使用301重定向! ②:302临时重定向 然后,302临时重定向。这个状态码告诉用户、搜索引擎、浏览器,该资源已经暂时性的移动到另外一个位置(旧版本页面临时重定向到新版本页面),这种移动不会当作永久性,而且会恢复原来的位置,但一些情况下适合使用302重定向。 302重定向对手机站优化是有一定的好处,百度官方给的建议:比如减少内容死链,如果没有内容,最好通过HTTP状态码指定,如404、403等; 如果内容死链希望重定向到首页,最好通过302跳转,不要使用javascript跳转。此时可以发现302重定向对手机站优化是有好处的。 注意:两种形式的重定向都会将用户、搜索引擎发送到新的位置(页面),但搜索引擎对待这两个HTTP状态码却不同。当搜索引擎看到301状态码的时候,会判断旧版本页面将权重或任何其他的指标永久转移到新页面。当搜索引擎看到302HTTP状态码的时候,会假设它不应该将旧页面的历史链接跟权重转移到新的页面,意思是转移后还是会转移回来的。另外,如果做301永久重定向,会导致搜索引擎从索引上(百度、谷歌)删除旧页面并用新页面代替。

西部数码301重定向

301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。 虚拟主机设置方法: 若是我司windows虚拟主机,请按以下流程操作: 1.登录管理中心-主机管理-管理-ISAPI筛选器设置-开启自定义的URL静态化支持 2.系统提示成功后,点击管理中心-文件管理,找到others\discuz\httpd.conf 文件,点击最右边下载图标将此文件下载到您的计算机 3.用记事本打开该文件,在RepeatLimit 32下增加如下两行(假设主机上绑定有三个域名 https://www.360docs.net/doc/b815221377.html,,https://www.360docs.net/doc/b815221377.html,, https://www.360docs.net/doc/b815221377.html, ,需要的是将所有的域名都301重定向至https://www.360docs.net/doc/b815221377.html,,则规则如下:) RewriteCond %{HTTP:Host} !^https://www.360docs.net/doc/b815221377.html,$ RewriteRule (.*) https://www.360docs.net/doc/b815221377.html,$1 [NC,R=301] 说明:将以上规则中的两个https://www.360docs.net/doc/b815221377.html,替换为您自己的域名即可,两个写一样。 4.将修改好的文件用FTP或者管理中心文件管理的在线上传功能上传到others\discuz\目录替换原文件即可 若是我司linux虚拟主机,请按以下流程操作: 1.在管理中心-主机管理-管理-文件管理中打开在线文件管理器 2.点击文件管理器菜单中的“新建文件”,输入文件名 .htaccess 3.双击刚才新创建的.htaccess文件,输入以下内容: RewriteEngine On RewriteCond %{HTTP_HOST} !^https://www.360docs.net/doc/b815221377.html,$ [NC] RewriteRule ^(.*)$ https://www.360docs.net/doc/b815221377.html,/$1 [R=301,L] 说明:https://www.360docs.net/doc/b815221377.html,请替换为您新的目标域名,这个规则将会将您的主机绑定的所有域名301重定向到 https://www.360docs.net/doc/b815221377.html,

服务器重定向方法

以前也没怎么关注301重定向,第一因为没有网站要重定向,第二对于不带www的域名我都是用的转发到带www的域名。不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼。 而且有些域名在国外,转发更是用不了,也只能进行301永久重定向了,不然搜索引擎是把不带www 的站和带www的站分开对待的,只是我们习惯于用带www的域名罢了。 在网络上看了些教程,再根据自己的实践,也终于搞定了IIS服务器上的301永久重定向设置问题。实现方法如下: 1.新建一个站点,对应目录如E:\wwwroot\301web。该目录下只需要1个文件,即index.html或者加个404.htm。绑定要跳转的域名,如图: 2.在IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入网址如: https://www.360docs.net/doc/b815221377.html,,同时注意选中下面的资源的永久重定向选项。如下图:

3.到此,我们已经完成了将https://www.360docs.net/doc/b815221377.html,这个域名301重定向到https://www.360docs.net/doc/b815221377.html,的工作。 注意问题: “上面输入准确的URL(X)”这个选项建议不要选。 不选的结果是: 当输入https://www.360docs.net/doc/b815221377.html,转到了https://www.360docs.net/doc/b815221377.html,, 当输入https://www.360docs.net/doc/b815221377.html,/sanwen/suibi/时,转到了https://www.360docs.net/doc/b815221377.html,/sanwen/suibi/。 选上的结果是: 当你输入https://www.360docs.net/doc/b815221377.html,或者https://www.360docs.net/doc/b815221377.html,/sanwen/suibi/都会转到https://www.360docs.net/doc/b815221377.html,。 好了,如果只是想把不带www的转到带www的或者其他没有用过的域名转到正在使用的域名,这样就可以了。但是如果你要的域名已经做过网站,想要把权重传递给新网站,可以参考下面这个方法: 第一步同上,主要是第二步,如图:

Apache服务器的安装与配置

Apache服务器的安装与配置 一、安装Apache 双击可执行文件apache_1.3.33-win32-x86-no_src.exe,将Apache服务器软件安装至C:\Apache目录下。 二、设置C:\apache\conf\httpd.donf文件 修改Apache的核心配置文件c:\apache\conf\httpd.conf(说明一点:“#”为Apache的注释符号)。修改方法如下: 1、寻找到ServerName。这里定义你的域名。这样,当Apache Server运行时,你可以在浏览器中访问自己的站点。如果前面有#,记得删除它。 2、寻找到ServerAdmin。这里输入你的E-Mail地址。 (以上两条在安装时应该已经配置好了,所以不必改动,这里介绍一下,主要是为了日后的修改) 3、寻找到。向下有一句Options,去掉后面所有的参数,加一个All(注意区分大小写!A 大写,两个l小写。下同。);接着还有一句Allow Override,也同样去掉后面所有的参数,加一个All。 AllowOverride All Options All Order allow,deny Allow from all 4、寻找到DocumentRoot。这个语句指定你的网站路径,也就是你主页放置的目录。你可以使用默认的,也可以自己指定一个,但记住,这句末尾不要加“/”。此外注意,路径的分隔符在Apache Server里写成“/”。(将DocumentRoot "C:/apache/htdocs"改为DocumentRoot "C:/try") 5、寻找到DirectoryIndex。这就是你站点第一个显示的主页,在index.html的后面加入index.htm index.php index.php3 index.cgi index.pl。注意,每种类型之间都要留一空格!这里添加好了,以后就不用再麻烦了。 6、port(端口号),如果没安装IIS的话,就保持80不要变,否则,就要改一下(因为IIS的WEB服务占据了80),可以改成81等等。 三、Apache的手动启动和停止 Net start apache启动apache服务,Net stop apache停止apache服务。

Apache的ProxyPass指令详解

描述:将远程服务器映射到本地服务器的URL空间 语法:ProxyPass [路径] !|url [键=值键=值...]] [nocanon] 上下文:server config, virtual host, directory 状态:扩展 模块:mod_proxy 该指令可以将远程服务器映射到本地服务器的URL空间;本地的服务器并不是扮演传统意义上的代理服务器的角色,而是表现为远程服务器的一个镜像。此本地服务器常被成为反向代理(reversed proxy)或者是网关(gateway)。路径是指本地虚拟路径的名字;url指远程服务器的一个部分URL,不能包含查询字符串。 注意:在使用ProxyPass指令的时候,ProxyRequests指令通常都应该是关闭的。 假设本地服务器的地址是https://www.360docs.net/doc/b815221377.html,/ ,那么 ProxyPass /mirror/foo/ https://www.360docs.net/doc/b815221377.html,/ 将会把对https://www.360docs.net/doc/b815221377.html,/mirror/foo/bar的本地请求内部转换成到https://www.360docs.net/doc/b815221377.html,/bar的代理请求。 其中,!指令当你不想对某个子目录进行反向代理的时候就有用了,例如: ProxyPass /mirror/foo/i ! ProxyPass /mirror/foo https://www.360docs.net/doc/b815221377.html, 将会把所有的/mirror/foo请求重定向到https://www.360docs.net/doc/b815221377.html,除了对/mirror/foo/i的请求。 注意: 顺序很重要:排除的指令必须在一般的ProxyPass指令之前。 和Apache 2.1一样,具备了使用到后端服务器的线程池的能力。使用“键=值”的参数便可调节线程池的分配。硬性最大值(Hard Maximum)的默认值为当前MPM中每个进程的线程数量。在Prefork MPM中,该值总是为1,在Worker MPM中,该值受ThreadsPerChild控制。 设置min可以决定有多少到后端服务器的链接始终打开。根据需要最多创建数量为柔性最大值(Soft Maximum),也就是smax的链接。任何超出smax数量的链接都会指定一个生存时间也就是ttl。Apache不会同时创建超过硬性最大值(或max)数量的到后端服务器的链接。 ProxyPass /example https://www.360docs.net/doc/b815221377.html, smax=5 max=20 ttl=120 retry=300 参数默认值描述 min 0 到后端服务器的总是打开的链接最小数。 max 1…n 允许连接到后端服务器的硬性最大链接数。硬性最大值的默认值为当前MPM 中每个进程的线程数量。在Prefork MPM中,该值总是为1,在Worker MPM中,该值受ThreadsPerChild控制。

JAVA_WEB第二章习题

第二章习题答案 1.(C) 2.( A) 3.(B) 4.问号后面的内容为请求参数名和参数值对,若有多个参数,中间用“&”符号分隔,参数名和参数值之间用等号(=)分隔,问号后面的内容称为查询串(query string),可以通过请求对象的getQueryString()得到查询串的内容。 5.HTTP请求结构由请求行,请求头,消息头,消息体构成;请求行由方法名,请求资源的URI和HTTP版本构成。 6.HTTP响应结构由状态行和状态码,响应头,响应数据构成;其中状态行包括HTTP版本,说明请求结果的响应状态码以及描述状态码的短语。 7. 8.(C) 9.(1)RequestDispatcher对象是请求转发器,他用来把当前请求转发到指定的资源;

(2)响应重定向实际上是服务器向浏览器发送一个特殊的响应头(Location 状态码302),他告诉浏览器连接到新的位置。使用这种方式可以在浏览器的地址栏看到地址的变化。重定向是作为一个新的请求来看待的,因此,所有的请求作用域的参数在重定向到下一个页面都会失效。另外,使用sendRedirect()重定向时,资源不能位于WEB-INF目录中。 (3)使用请求转发可以共享请求作用域中的数据,使用响应重定向可以共享会话作用域中的数据。 10.可以用public Enumeration getAttributeNames()枚举的方式来获得请求参数的名称,然后再使用请求对象来存储数据。 11(B)12(C) 13○1(E)○2.(C) ○3(D)○4(B)○5(A) 14.新的URL为:https://www.360docs.net/doc/b815221377.html,/myapp/foo/stuff.html 15. 方法一:覆盖Servlet的init(ServletConfigconfig),然后把容器创建的ServletConfig 对象保存到一个成员变量中; 方法二:在Servlet中直接使用getServletConfig()获得ServletConfig对象。 16元素指定是否在Web应用程序启动时载入该Servlet。在注解中@WebServlet(loadOnStartup=1)类似这样来指定。 17input.jsp页面: <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

相关文档
最新文档