核心提示:大家也通常会在不同情况下有不同的301重定向需求,如要将不带www的域名301到带www的域名、将闲置老域名301到主域名、将原放在子目录下的论坛301到新的bbs二级域名、更换域名将某域名下所有页面301重定向到新域名下对应页面等等。

大家都知道目前301重定向是最有用的跳转方式,不仅可以实现SEO亲和性跳转,而且还可以实现权重的传递。

大家也通常会在不同情况下有不同的301重定向需求,如要将不带www的域名301到带www的域名、将闲置老域名301到主域名、将原放在子目录下的论坛301到新的bbs二级域名、更换域名将某域名下所有页面301重定向到新域名下对应页面等等。

分析不同情况的301的需求,其实都需要保证如下两点:

1) 成功跳转,并正确发送301状态

2) 实现原页面跳转到新对应的页面

第一点怎么实现大家基本都有常见到各种各样的301重定向教程,而第二点因为不同CMS/程序、不同环境,实现方便难有统一的解决办法。下面落叶分两点先简单介绍下IIS下(服务器、虚拟主机)如何实现正确的301跳转,然后再重点介绍落叶原创的百试不爽的万能301跳转方法 - URL伪静态重写+PHP301跳转,实现所有程序对应页面跳转。

1. IIS下正确实现基本的301跳转:

如我为了保证网站域名单一性,集中权重,希望将pmume.com 301永久重写向到www.pmume.com,那么:

1) 服务器:如果有服务器的操作权限,直接另外新建一个网站,然后在IIS上设置“资源永久重定向”:

2) 虚拟主机:在IDC虚拟主机后台把不带www的域名绑定一个子目录,然后,在子目录下放置一个index.php,在其中放上301跳转的代码:

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

header('location:http://www.pmume.com/');

exit;

?>

上面服务器上直接IIS上的操作,不仅可以实现跳转到首页,勾选“资源的永久重定向”还可以实现原域名下所有子页面都跳转到新域名下对应页面,而上面虚拟主机上的301跳转代码则只可实现首页的跳转或者单一目录的跳转。

2. 对应页面跳转的万能301:URL伪静态重写+PHP301

对应页面301跳转的方法有很多,最笨的方法是手动一页一页301到对应的新页面,但实际不具可操作性,除非只是少数几个页面,要是更新域名等的301,基本不可能。那么怎样通用的实现对应页面的301跳转呢?URL伪静态+PHP301又是怎样操作的呢?

要实现对应页面跳转,首先要分析原页面URL的结构,然后分析新页面的URL规则,然后实现301的跳转,落叶通过采用的URL伪静态+PHP301的操作是通过分析原URL的规则,利用IIS中httpd.ini中的伪静态功能,将原URL正则重写到单一的PHP入口,然后通过该单一PHP中获取到原URL的特征字符串,对应跳转到新页面的特征字符串。

上面一句话其实已经概括完了整个的操作方法,下面举例说明实际的实现。

例一:我想将原放在子目录下www.abc.com/bbs/访问的论坛更换为bbs.abc.com。

a.伪静态重写URL:

将下面伪静态规则放于根目录下的httpd.ini文件中

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files

# from accessing through HTTP

RewriteRule ^(.*)/bbs/(.*)$ $1/bbs/301\.php\?go=$2 [L]

作用:将BBS目录下所有链接都重写到index.php并使用go参数来传递,如http://www.abc.com/bbs/thread-112-1.html的链接重写成http://www.abc.com/bbs/301.php?go=thread-112-1.html,下一步就是在index.php中接收go参数(如thread-112-1.html),301跳转到http://bbs.abc.com/thread-112-1.html 。将内页多入口转换为经过index.php的单一入口,集中控制。

b.在301.php中接收参数,并实现301永久重定向:

$go=$_GET['go'];//获取跳转页面链接部分,如"thread-112-1.html",又如forum.php?fid=32等

header("HTTP/1.1 301 Moved Permanently");//发送301状态,之后的所有跳转均为301

header('location:http://bbs.abc.com/'.$go);//根据go参数跳转到对应页面

exit;

?>

例二:我原论坛放在www.abc.com主域名下的,现在主域名想做文章站,论坛换到bbs.abc.com下,我想原www.abc.com域名原论坛的部分URL全301到bbs.abc.com对应页面,而新的文章内容不跳转。

如www.abc.com/forum-1-1.html

www.abc.com/thread-1-1-1.html

www.abc.com/tag-%D6%AA.html

跳转到 bbs.abc.com/forum-1-1.html

而www.abc.com/article/123.html等不跳转。

a.分析你要部分跳转的URL的种类及大致格式:

如你上面提到的要跳转的有论坛版块文章列表页、论坛帖子内容页、论坛的TAG标签页,这三类页面的URL结构很典型,即你说的:

www.abc.com/forum-1-1.html

www.abc.com/thread-1-1-1.html

www.abc.com/tag-%D6%AA.html

b.把这些特征页面全伪静态重写到一个301.php页面:

帖子列表页:RewriteRule ^(.*)/forum-(.*)$ $1/301\.php\?go=forum-$2 [L]

帖子内容页:RewriteRule ^(.*)/thread-(.*)$ $1/301\.php\?go=thread-$2 [L]

Tag标签页:RewriteRule ^(.*)/tag-(.*)$ $1/301\.php\?go=tag-$2 [L]

等等,其它特征页类似重写,需要你对伪静态正则写法有一定了解

3.PHP301对应跳转:

$go=$_GET['go'];

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

header('location:http://bbs.abc.com/'.$go);

exit;

?>

落叶原创的这个URL伪静态重写+PHP301方法(呵呵,如有雷同纯属巧合),百试不爽,但关键有一点,需要大家了解伪静态规则的写法。这一点其实涉及到一些正则表达式的知识,但是相信大家只要仔细看一下自己使用的CMS或者论坛程序提供的伪静态规则,细心观察上,就可以模仿上面例子的思路进行301跳转了。

作者:落叶(t.qq.com/guohui)

网站:http://www.pmume.com 尊重版权,转载请注明出处,原创首发CHINAZ!

iis搭建php出现301,IIS下万能301跳转方法:URL伪静态重写+PHP301相关推荐

  1. iis搭建网站教程(iis搭建网站详细步骤)

    iis搭建网站教程(iis搭建网站详细步骤) 本教程基于Windows10系统,其他版本基本上步骤相差不大 1.打开我的电脑,在地址栏输入"控制面板"四个字然后回车,打开控制面板界 ...

  2. 利用自己的电脑设置web服务器建网站_win7系统篇,win7系统利用iis搭建web服务器实现信息浏览资源共享的操作方法...

    很多小伙伴都遇到过对win7系统利用iis搭建web服务器实现信息浏览资源共享进行设置的困惑吧,一些朋友看过网上对win7系统利用iis搭建web服务器实现信息浏览资源共享设置的零散处理方法,并没有完 ...

  3. xp http文件服务器,在XP sp3下用IIS搭建http服务器总结

    在XP sp3下用IIS搭建http服务器总结 需要将搭建一个http服务器. 以下是安装的全部过程: 1.确认计算机的名字:我的电脑->右键属性->计算机名->确认计算机的名字,最 ...

  4. IIS服务器下做301永久重定向设置方法[图解]

    以前也没怎么关注301重定向,第一因为没有网站要重定向,第二对于不带www的域名我都是用的转发到带www的域名. 不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服 ...

  5. WIN7下使用iis搭建php环境(上)

    Win 7下使用iis搭建php环境 上 在win7下进行php环境搭建,因为自己最近也在自学php,在搭建php环境的时候遇到了很多问题,也上网查了很多的资料来学习怎么搭建,但是还是不能很好的解决我 ...

  6. windows系统下(win10),使用IIS搭建自己的专属网站

    windows系统下(win10),使用IIS搭建自己的专属网站 IIS全名是:Internet Information Services,是指互联网信息服务.它是由微软公司提供的基于运行Micros ...

  7. win7下IIS搭建ftp服务器的方法

    在以往的windows系统中,我们需要用到Serv-u等一些服务器搭建软件,在win7的操作系统下,我们可以用内置的IIS搭建FTP服务器,本文给大家介绍一下用IIS搭建服务器的具体办法. 工具/原料 ...

  8. iis php重定向循环,iis和apache及PHP页面设置301重定向跳转方法

    301重定向有很多办法可以实现,如iis可以,apache,php,asp等等都可以快速的设置页面301重定向跳转了,下面我来给各位同学介绍介绍 本文将通过IIS.APACHE.ASP.PHP几种服务 ...

  9. 云服务器建站教程——Apache和IIS搭建WordPress和其他Web项目

    文章目录 介绍 1. 使用Apache搭建WordPress 1.0 简述 1.1 开始 2. 使用IIS同时部署WordPress和其他Web项目 2.0 简述 2.1 开始 2.1.1 安装IIS ...

最新文章

  1. RuoYi-Vue————权限管理
  2. 先排列再排行 html,三国中猛将的权威排名 颜良为何排列第二
  3. Oracle执行计划详解
  4. python--字符/文本编码解码笔记
  5. mysql count count id_mysql 为什么count(*)快于count(id)
  6. linux学习笔记整理
  7. 看完后,搞懂ARP的工作原理,其实并不难(好文)
  8. 【OpenCV笔记一】Mac安装OpenCV环境及demo
  9. asp.net MVC4, Ninject auto-mating
  10. java游戏局域网实现的_java学习笔记: 实现简易局域网聊天程序
  11. 谷歌浏览器点击上传文件崩溃/上传图片崩溃/打开浏览文件未响应 解决方案
  12. 数据分析网站-竞品分析数据来源
  13. MFC C++视频播放和视频的浓缩播放和检测目标接口
  14. 数据迁移工具之DataX
  15. 绘图软件教程(2)coreldraw12图层的使用与DXF文件的导出
  16. 动态规划解决币值最大化问题
  17. byte java 比较大小_java基本数据类型占用空间大小以及比较大小
  18. 笔记本连接html后分成两个屏,笔记本电脑关掉自带显示屏,外接两个显示器做分屏的实现方法。...
  19. 腾讯云微搭入选国际权威研究机构Forrester《2021年低代码平台中国市场现状分析报告》
  20. bo蓝牙耳机怎么连接_蓝牙耳机怎么用,HIK X1蓝牙耳机怎么样?

热门文章

  1. Navicat primium 英文字体出现框框
  2. 【学习笔记】《STL使用入门教程》第七讲:STL的综合应用
  3. knime 时间序列预测_使用KNIME和Spark进行时间序列分析
  4. 独立产品灵感周刊 DecoHack #050 - 基于 ChatGPT 的 API 能做什么产品
  5. 游戏服务器设计之任务系统
  6. 【图像分割】基于FCM和改进的模糊聚类FCM实现脑部CT图像分割matlab源码
  7. ×××要求付款、催付款英文信
  8. JavaScript 判断时间阶段,比如用户输入12点弹出 中午好 用户输入18点 弹出傍晚好 用户输入23点 弹出深夜好
  9. 用python将jpg文件转为eps格式
  10. 【CTF】-Crypto练习日志8.1