301跳转,如何只禁止跳转首页和指定目录?其他页面正常跳转?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了301跳转,如何只禁止跳转首页和指定目录?其他页面正常跳转?相关的知识,希望对你有一定的参考价值。

301设置好了全站跳转。
但是,有些页面不想让别人访问到,如何让指定的页面和目录禁止301跳转呢?

那位大神告知下?
环境是centos linux7.5+nginx -Tengine2.2.3 +php7

参考技术A

路由选择的变化也是对数据报文经由路径的一种重定向。

在我们网站建设中,时常会遇到需要网页重定向的情况:像网站调整,改变了网站的目录结构,网页被移到一个新地址。或者网页扩展名改变,如因应用需要把.php改成.html或.shtml,在这些情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失。又比如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。

方式介绍

常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh:

301 redirect::301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎最友好的方法,只要不是暂时搬移的情况,都建议使用301来做转址。

302 redirect::302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊。各大主要搜索引擎均加强了打击力度,像Google对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎误判为spam而遭到惩罚。

meta fresh: 这在2000年前比较流行,它具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之内),会被判断为spam。

IIS服务器实现301重定向

* 打开internet信息服务管理器,在欲重定向的网页或目录上按右键

IIS6.0上面301重定向图

,选择“重定向到URL”,

* 此处以重定向到百度为例

* 在“重定向到”输入框中输入要跳转到的目标网页的URL地址

* 选中“资源的永久重定向”(切记)

* 最后点击“应用”

Apache服务器实现301重定向

相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。

redirect permanent /index.php http://www/index.php?go=category_6(将网页index.php重定向到http://www./index.php?go=category_6)

通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站Apache手册。

PHP下的301重定向

<?

Header( "HTTP/1.1 301 Moved Permanently" );

Header( "Location: http://www" );

exit;

?>

<html>

<head>

<title>HTTP/1.1 301 Moved Permanently</title>

</head>

<body>

HTTP/1.1 301 Moved Permanently

</body>

</html>

ASP下的301重定向

<%@ Language=VBScript %>

<%

    Status="301 Moved Permanently"

    AddHeader "Location","http://"

    %>

    ASP .NET下的301重定向

    <script runat="server">

    private void Page_Load(object sender, System.EventArgs e)

    Status = "301 Moved Permanently";

    AddHeader ("Location","http://www);

    </script>

    ColdFusion下的301重定向

    <.cfheader statuscode="301" statustext="Moved permanently">

    <.cfheader name="Location" value="http://www."> 旧域名重定向到新域名

    创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。

    记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件。

    Options +FollowSymLinks

    RewriteEngine on

    RewriteRule (.*) http://www/$1 [R=301,L]

    请将上面的wwwdomaincom修改成你想要跳转到的域名。

    此外,我建议大家归总旧网站的外部链接,并联系相应的站点修改导入链链的URL,以指向新站点。

    注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用。

    域名301重定向到www的二级域名

    首先要知道,www.是domaincom域下的一个二级域名。

    301跳转到www二级域的实现方式:

    创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保所有来自对domaincom的请求都转向到对www进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件。

    Options +FollowSymlinks

    RewriteEngine on

    RewriteCond %HTTP_HOST ^ [NC]

    RewriteRule ^(.*)$ http://www./$1 [L,R=301]

    请将上面的domaincom修改成你想要跳转到的域名。

    注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用。

    ASP下使用web.config来实现301重定向

    如果网站根目录没有web.config就新建一个文本文档,保存成web.config即可,代码如下:

    <configuration>

    <system.webServer>

    <rewrite>

    <rules>

    <rule name="WWW Redirect" stopProcessing="true">

    <match url=".*" />

    <conditions>

    <add input="HTTP_HOST" pattern="^$" />

    </conditions>

    <action type="Redirect" url="http://www/R:0"

    redirectType="Permanent" />

    </rule>

    </rules>

    </rewrite>

    </system.webServer>

    </configuration>

    将此web.config上传到网站根目录即可。别忘了把上面的domaincom换成你的域名哦!

    前提条件是:window主机的IIS版本必须是7.0或以上的。

    在博客中设置301的方法

    这里以Z-Blog为例详细介绍一下:

    复制如下代码,将代码中”改成你自己的网址。

    if request.ServerVariables("SERVER_NAME")" then

    Status="301 Moved Permanently"

    AddHeader "Location", ""

    End

    end if

    进入Z-Blog后台,打开“文件管理”界面。

    找到并打开网站根目录下的 default.asp 文件。

    将以上代码加进 default.asp 在下图中红框所示位置。

    5. 最后确定无误点击——提交——保存。

    301永久重定向

登录首页定时跳转指定页面倒计时提示。

<body>
   <div style="text-align: left;color:red; ">
              <span id="show"></span>
        </div>
</body>

<script>
     var t=60;                      //设定跳转的时间  自定义设置
     setInterval("refer()",1000);           //启动1秒定时
     document.onmousemove = retime;       //当鼠标移动
     document.onkeydown = retime;           //当键盘按下
     document.onkeypress = retime;          //当鼠标点击重新获取设定时间作为初始时间
     function retime(){
     t=60;
    }
     function refer(){
     if(t==0){
     location="http://www.baidu.com";               //#正式环境设定跳转的链接地址
    }
     document.getElementById(‘show‘).innerHTML="请在"+t+"秒内完成登陆。";  // 倒计时
     t--;
    }
  </script>





















以上是关于301跳转,如何只禁止跳转首页和指定目录?其他页面正常跳转?的主要内容,如果未能解决你的问题,请参考以下文章

iOS跳转到“通知”(指定应用)

网站改版页面如何做301重定向跳转

如何从微信浏览器中跳转到APP指定页面

设置http跳转https的几种方法

window.location.href如何跳转到其它目录下的页面

在需要跳转页面下,怎样用js改变点击菜单的样式?