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

作者:goldensun 时间:2022-11-10 12:55:39 

问题背景:矿秘书网的历史遗留问题,刚开始由于各种问题,一些动态页面都是用了?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。

标签:Apache,动态地址
0
投稿

猜你喜欢

  • 谷歌,百度,云计算,框计算那些事儿

    2010-09-03 11:07:00
  • Exchange Server 2003安装选项详解

    2010-02-25 18:55:00
  • Linux系统下virtuoso数据库安装与使用详解

    2023-07-31 17:19:22
  • UCenter Home网站服务器搬家详解

    2009-02-15 09:53:00
  • 上传漏洞解析-小韩网站编程安全系列二

    2007-07-13 10:08:00
  • 《商业大亨》运营经理专访 创模拟网游PK先河

    2009-11-10 10:44:00
  • Linux Autofs自动挂载服务安装部署教程

    2023-08-05 13:50:43
  • Linux chage命令详解

    2023-09-25 11:14:32
  • VMware Tools 启动脚本未能在虚拟机中成功运行的两种解决方法

    2021-07-23 11:19:07
  • 百度与谷歌搜索质量与理念对比

    2009-02-19 13:13:00
  • 中国亚龙:百度贴吧推广的五大秘诀

    2010-03-07 20:40:00
  • 三个月让你的网站PR值为5 搜狗PR=43

    2007-10-10 12:24:00
  • 如何在godaddy Linux虚拟主机上配置MIME类型?

    2010-04-13 12:44:00
  • 必用利器Windows系统组策略高级技巧

    2010-05-31 19:03:00
  • PHPCMS开发文档里看到PHP编码规范

    2009-08-18 11:17:00
  • Discuz!7.1公布发布计划 将在近期推出测试版本

    2009-09-07 16:54:00
  • Ubuntu 20.04最佳配置指南(新手必备)

    2023-07-26 20:34:17
  • 如何在IIS上搭建WAP网站[图文]

    2007-08-13 15:21:00
  • nginx和squid配合搭建的web服务器前端系统

    2009-07-23 10:55:00
  • 使用nginx实现网站负载均衡测试实例

    2009-11-19 11:46:00
  • asp之家 网站运营 m.aspxhome.com