Apache中解决动态地址跳转死循环的方法

 更新时间:2015年07月06日 11:45:16   投稿:goldensun  
这篇文章主要介绍了Apache中解决动态地址跳转死循环的方法,另外作者还提出了尽量使用伪静态的建议,需要的朋友可以参考下

问题背景:矿秘书网的历史遗留问题,刚开始由于各种问题,一些动态页面都是用了?id=参数的形式,对seo/seo.html" target="_blank">搜索引擎不友好,经常多方面考虑,还是改成伪静态。这里劝各位站长在做新站时,尽量使用伪静态,不仅对搜索引擎,对用户体验也友好。

问题描述:需要将 /news/show_news.php?id=1 形式的地址伪静态成 /news/1 形式,而且 /news/show_news.php?id=1 在浏览器打开要 301 跳转到 /news/1 去。

但是在 .htaccess 加入规则,出现了死循环,死循环规则如下

RewriteRule ^(d+)$ /news/show_news.php?id=$1 [L]

RewriteCond %{QUERY_STRING} ^id=(d+)$ [NC]
RewriteRule ^show_news.php$ /news/%1? [L,R=301]

死循环原因:/news/show_news.php?id=1 跳转到 /news/1,而且 /news/1 被重写为 /news/show_news.php?id=1,/news/show_news.php?id=1 再次跳转到  /news/1,这样,泪流满面!

解决办法:只要在rewrite的时候,添加一个常量参数,这样的url和301的url就不一样了,规则如下:

RewriteRule ^(d+)$ /news/show_news.php?id=$1&r=1 [L]

RewriteCond %{QUERY_STRING} ^id=(d+)$ [NC]
RewriteRule ^show_news.php$ /news/%1? [L,R=301]

终于解决了,泪奔……

以上为真实案例,环境是apache。

相关文章

  • 实例详解Linux 中的命令链接操作符

    实例详解Linux 中的命令链接操作符

    这篇文章通过实例代码给大家详细介绍了Linux 中的命令链接操作符,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-08-08
  • Centos6.5升级glibc过程介绍

    Centos6.5升级glibc过程介绍

    大家好,本篇文章给大家分享的是Centos6.5升级glibc过程介绍,感兴趣的同学赶快来看一看吧,如果对你有帮助的话记得收藏一下哦!
    2021-11-11
  • LNMP系列教程之 设置301重定向的方法

    LNMP系列教程之 设置301重定向的方法

    因为LNMP系统环境采用的是Nginx而不是Apache,所以在设置301重定向的时候,不是简单的在根目录.htaccess文件添加代码就可以实现,因为他需要对单独的网站conf文件进行修改配置
    2012-09-09
  • CentOS配置本地yum源/阿里云yum源/163yuan源并配置yum源的优先级

    CentOS配置本地yum源/阿里云yum源/163yuan源并配置yum源的优先级

    这篇文章主要介绍了CentOS配置本地yum源/阿里云yum源/163yuan源并配置yum源的优先级,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 使用yum查看工具lspci所在包并安装的方法(详解)

    使用yum查看工具lspci所在包并安装的方法(详解)

    下面小编就为大家带来一篇使用yum查看工具lspci所在包并安装的方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • SELINUX工作原理详解

    SELINUX工作原理详解

    这篇文章主要介绍了SELINUX工作原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 有效学习Linux系统的4个方法

    有效学习Linux系统的4个方法

    这篇文章主要为大家详细介绍了有效学习Linux系统的4个方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 详解在Linux中搭建一个FTP服务器

    详解在Linux中搭建一个FTP服务器

    本篇文章主要介绍了在Linux中搭建一个FTP服务器 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Win7安装和配置Apache2.4服务器的详细方法

    Win7安装和配置Apache2.4服务器的详细方法

    这篇文章主要介绍了Win7安装和配置Apache2.4服务器的详细方法,需要的朋友可以参考下
    2017-09-09
  • 详解Linux 下开发微信小程序安装开发工具

    详解Linux 下开发微信小程序安装开发工具

    这篇文章主要介绍了详解Linux 下开发微信小程序安装开发工具的相关资料,需要的朋友可以参考下
    2017-06-06

最新评论