最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
动态地址rewrite伪静态,然后301跳转到伪静态时死循环解决办法
时间:2013-06-25 编辑:简简单单 来源:一聚教程网
问题背景:矿秘书网的历史遗留问题,刚开始由于各种问题,一些动态页面都是用了?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] |
死循环原因:/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] |
终于解决了,泪奔……
以上为真实案例,环境是apache。
-
上一个: php中输出变量加大括号{}作用
-
下一个: PHP判断浏览器类型程序代码详解
相关文章
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31
- Laravel实现登录跳转功能解析 10-31
- php双向队列解读 10-31
- Laravel异常上下文解决教程 10-24
- php数组查询元素位置方法介绍 10-24