发布于 2016-02-02 06:23:49 | 264 次阅读 | 评论: 1 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Apache Web服务器

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件。


这篇文章主要介绍了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。



相关阅读 :
Apache中解决动态地址跳转死循环的方法
apache 1067错误提示php5ts.dll导致Apache崩溃解决方法
Apache提示 the requested operation has failed无法启动的解决方法大全
使用CDN之后APACHE日志记录中IP地址不正确的解决方案
Apache、Nginx下Font Awesome在 Firefox 中不显示问题解决方法
windows安装apache系统中无apache2服务解决方案
apache错误:.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration.错误解决方法
windows下apache错误:Failed to open the WinNT service manager 解决方法
Linux下Apache 启动提示undefined symbol: libiconv_open错误解决方法
同一局域网内其它设备无法访问本地Apache问题的解决
安装 Apache 出现 (OS 10013) 以一种访问权限不允许的方式做了一个访问套接字的尝试的解决方法
apache 在 加载openssl 模块时出现 “/usr/local/ssl/lib/libssl.a: could not read symbols: Bad value”错误解决方案
最新网友评论  共有(1)条评论 发布评论 返回顶部
xptxu 发布于2016-05-29 02:46:14
学习了!
支持(0)  反对(0)  回复

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务