Apache中解决动态地址跳转死循环的方法
程序员文章站
2022-07-09 20:00:20
问题背景:矿秘书网的历史遗留问题,刚开始由于各种问题,一些动态页面都是用了?id=参数的形式,对seo/seo.html" target="_blank">搜...
问题背景:矿秘书网的历史遗留问题,刚开始由于各种问题,一些动态页面都是用了?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。
上一篇: 易扩展二次开发的web快速开发平台
下一篇: 网页顶部空几行 jsp(转)
推荐阅读
-
电脑使用浏览器中打开网页提示请不要使用非法的url地址访问的原因及解决方法
-
使用CDN之后APACHE日志记录中IP地址不正确的解决方案
-
Jsp中解决session过期跳转到登陆页面并跳出iframe框架的方法
-
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
-
锐捷认证时显示用户动态ip地址类型绑定错误的解决方法
-
解决vue中无法动态修改jqgrid组件 url地址的问题
-
Apache中解决动态地址跳转死循环的方法
-
vue中PC端地址跳转移动端的操作方法
-
根据输入邮箱号跳转到相应登录地址的解决方法
-
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)_php实例