伪静态网址301重定向到静态网址怎么实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了伪静态网址301重定向到静态网址怎么实现相关的知识,希望对你有一定的参考价值。

现在需要把 abcd.com/mulu/?123.html 形式的伪静态网址 301重定向到 abcd.com/mulu/123.html 格式的纯静态网址上,请问怎么书写.htaccess的重定向规则,求大神帮忙,谢谢!

什么情况下使用301重定向
1:网站更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量损失和SEO。
2:当出于需要删除网站中的某些目录时,比如我要删除我博客下的博客导航,这时就可以用301永久重定向到网站首页。
3:如果你有多个闲置域名时需要指向同一网站时,通过301永久重定向可以实现。
4:你打算实现网址规范化。
如何实现网址规范化
我重点讲讲这个网址规范化,因为这是大家很容易忽略的问题。例如我的域名,如果不做任何设置,它默认会产生四个网址:
(1)zaizaigou.com(2)www.zaizaigou.com
如果不做301重定向会导致:你站点主域名的pr值分散到其他几个URL了。先查询上面4个网址的PR值,如果结果一致,说明网站没有规范化问题;如果不一致,表明有规范化问题。这时候我们就需要使用301永久定向技术来实现网址的规范化了。需要注意的是,带www和不带www的两个网址,www其实是个二级域名。
我所知道的常用的301重定向设置方法有2种。一个是通过IIS界面直接设置,另外一个是通过代码来实现301重定向设置。卢松松建议用服务器组件来做重定向,我以下例子以我的域名zaizaigou.com301重定向到zaizaigou.com进行讲解。
1:IIS 服务器实现301 重定向
打开IIS,右键-属性-网站-IP地址哪里点编辑增加一个站点,增加一个站点,绑定的一下主机头,也可以绑定多个闲置域名。如图所示:

打开IIS,首先新建立一个站点,随便对应一个目录E:\wwwroot\301web。该目录下只需要2个文件,一个 default.html,一个404.htm。在欲重定向的网页或目录上按右键;选中“重定向到URL”;在对话框中输入目标页面的地址;切记,记得选 中“资源的永久重定向”;当然,最后要点击“应用”,完成。如下图所示:

2:Apache 服务器实现301 重定向
在Apache 中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301 重定向只是其中之一。找到redirect permanent / http://zaizaigou.com:
redirect permanent /old.html http://zaizaigou.com:修改这句即可。
3:在.htaccess文件中增加301重定向指令
采用“mod_rewrite”技术,形如:
RewriteEngine on
RewriteRule ^(.*)$ http://zaizaigou.com/$1 [R=301,L]
4:适用于使用Unix网络服务器的用户
通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。
形如:Redirect 301 / http://zaizaigou.com.com/
5:在服务器软件的系统管理员配置区完成301重定向
适用于使用Window网络服务器的用户
6:绑定/本地DNS
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
DNS服务器的设置
若要将blog.zaizaigou.com指向zaizaigou.com,则只需在DNS服务中应增加一个别名记录,可写成:blog IN CNAME zaizaigou.com。
如需配置大量的虚拟域名,则可写成:* IN CNAME zaizaigou.com.这样就可将所有未设置的以zaizaigou.com结尾的记录全部重定向到zaizaigou.com上。
7:用ASP/php实现301重定向:
ASP:
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://zaizaigou.com/"
Response.End
PHP:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://zaizaigou.com/");
exit();

301重定向代码和测试工具

如 果出现结果200表明请求已成功,请求所希望的响应头或数据体将随此响应返回。
常用的跳转方式
301代表永久性转移,301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302代表 暂时性转移,只有当一个网站或网页在24到48小时之内临时移到其它位置的情况下才能使用该命令。能够对302重定向具备优异处理能力的只有 Google,在前些年,不少搞SEO曾广泛应用这项技术作弊,但也很容易遭受惩罚。
用HTML跳转:<META HTTP-EQUIV=REFRESH CONTENT="5;URL=http://www.zaizaigou.com">, 表示5秒后自动跳转到首页,你也可以把时间设置的更短,但也很容易被搜寻引擎容易误判为spam而遭到惩罚。
javascript跳 转:<script language="javascript">location.href='http://www.zaizaigou.com'</script>
转发和重定向的区别
一句话,转发是服务器行为,重定向是客户端行为。转发时一次请求,重定向是2次请求,转发地址栏不会发生改变,重定向地址栏会改变,转发在项目内,重定向 可以转到项目外。当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。
怎么选择是重定向还是转发
通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页 面,开始页面将会被重新调用。如果你不想看到这样的情况,则选择转发。

希望你有所启发。追问

请问你这样长篇大论的复制不觉得累吗?能看清楚答案再回答吗?

参考技术A RewriteRule ^(d+)$ /(.*)/?$1&r=1 [L]
RewriteCond %QUERY_STRING ^(d+)$ [NC]
RewriteRule ^/(.*)/$ /(.*)/%1.html? [L,R=301]

伪静态注入

大家都熟悉动态网站的SQL注入了,网上有很多资源。

伪静态伪静态的注入点查找:

1.手工注入判断(和动态注入判断方法一样):

1)正常页面显示,如图:

技术分享

2)在网址加上" ‘ ",网页不正常显示,如下图:

技术分享

3)在网址加上" and 1=1 ",网页正常显示,如图:

技术分享

4)在网址加上" and 1=2 ",网页不正常显示,如图:

技术分享

由此可知该网页存在SQL注入

2.使用工具SQLMAP进行注入检测:

对网址进行构造,加一些特殊字符,如:*、#等等

检测如下:

技术分享

 

以上是关于伪静态网址301重定向到静态网址怎么实现的主要内容,如果未能解决你的问题,请参考以下文章

IIS 7.5伪静态文件web.config编写规则及301重定向方法

提问:在.htaccess中已经写好了伪静态规则,如下面第二种访问方式。现在问题是如何通过301重定向

301 将旧网址重定向到新网址

301重定向的两种实现方法

状态码301 302

详解301重定向及实现方法