时间:2021-05-19
问题背景:矿秘书网的历史遗留问题,刚开始由于各种问题,一些动态页面都是用了?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。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
如何使用.htaccess使非伪静态页面301跳转到伪静态页面然后再跳转?这是一个比较蛋疼的跳转。因为不小心就会搞成死循环导致页面无法打开。好在问题最终解决了。
首先在/include/extend.func.php增加以下方法:?123456789101112131415161718192021/***动态地址转静态输
win7重装死循环的解决方法: 1、进入死循环,极有可能是系统镜像本身有问题,再者是U盘本身启动盘有问题,一般推断应该是软件的问题造成的。关闭安装系统的那台电
win10自动修复死循环的解决方法: 1、进入电脑BIOS,切换至系统配置(SystemConfiguration)界面,修改LegacySupport为En
新帖(动态地址)[e:loop={"selecttid,subject,datelinefrompre_forum_threadorderbytiddescli