php伪静态后301,动态地址rewrite伪静态,然后301跳转到伪静态时死

本文章来给各位同学介绍动态地址rewrite伪静态,然后301跳转到伪静态时死循环解决办法,有碰到此类的朋友可进入参考。

问题背景:矿秘书网的历史遗留问题,刚开始由于各种问题,一些动态页面都是用了?id=参数的形式,对伪静态。这里劝各位站长在做新站时,尽量使用伪静态,不仅对搜索引擎,对用户体验也友好。

问题描述:需要将 /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。

(责任编辑:最模板)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557548.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础篇2——运算符

Java基础篇2——运算符 1、运算符 1.1、算数运算符 表示加法运算符-表示减法运算符*表示乘法运算符/表示除法运算符%表示取余运算符 1.2、关系运算符 所有以关系运算符作为最终运算的表达式结果一定是boolean类型 >表示是否大于运算符>表示是否大于等于运算符<表…

php 移植 arm 精简,arm linux 移植 PHP

背景&#xff1a;PHP 是世界上最好的语言&#xff0c;所以要考虑php的移植。host平台   &#xff1a;Ubuntu 16.04arm平台   &#xff1a; 3531darm-gcc   &#xff1a;4.9.4主机准备&#xff1a;使用以下脚本### Copyright By Schips, All Rights Reserved# https://git…

Java基础篇3——流程控制

Java基础篇3——流程控制 1、顺序结构 正常代码的流程即是顺序流程 2、分支结构 2.1、if-else分支 if(条件表达式) {语句块1; }if(条件表达式) {语句块1; } else {语句块2; }if(条件表达式1) {语句块1; } else if(条件表达式2) {语句块2; } else {语句块3; }2.2、switc…

hive mysql类型,(二)Hive数据类型、数据定义、数据操作和查询

1.数据类型1.1 基本数据类型Hive数据类型长度例子TINYINT1byte有符号整数20SMALINT2byte有符号整数20INT4byte有符号整数20BIGINT8byte有符号整数20BOOLEAN布尔类型&#xff0c;true或者falseTRUE FALSEFLOAT单精度浮点数3.14159DOUBLE双精度浮点数3.14159STRING字符系列。可以…

Error running tomcat8 Address localhost:1099 is already in use 错误解决

错误情况&#xff1a; 在IDEA上运行web项目时报错&#xff1a;Error running &#xff08;项目名&#xff09; Address localhost:1099 is already in use 解决方法&#xff1a; 第一步&#xff1a;打开Windows运行&#xff0c;如下图 第二步&#xff1a;按下回车或点击确定…

matlab数据处理 书,matlab数据处理记录

最近在看一篇论文&#xff0c;觉得文章的数据处理效果十分的惊艳&#xff01;所以想着如何用matlab将类似的效果实现出来&#xff0c;但最近有一个任务&#xff0c;以后慢慢更新吧&#xff01;先挖一个坑&#xff01;1. 二维图形绘制二维坐标轴图像涉及的部分包含曲线的颜色、点…

StringUtils系列之StringUtils.isNotBlank()和StringUtils.isNotBlank()的区别

/** 1.* StringUtils.isNotBlank();* 判断参数是否不为空.* 1.如果不为空返回true。* 2.如果为空返回false。* StringUtils.isNotEmpty(null) -> false* StringUtils.isNotEmpty("") -> false* StringUtils.isNotEmpty("a") -> true* StringUti…

matlab信号内插,基于VC++和Matlab的数字信号内插处理系统

0引言目前,利用并行交替式(Parallalinterleaving)技术,超高速数字化示波器的实时采样速率已突破了10Gsa/s。按照Nyquist定理,这种系统的实时带宽可接近5GHz。在数字化示波器中,由实时采样获得的样本数据原封不动地显示时,因采样理论和显示技术等缘故,可能会产生不同形式的视觉混…

MySQL-locate()函数

判断字符串&#xff08;string&#xff09;中是否包含另一个字符串&#xff08;subStr&#xff09;locate(subStr,string) &#xff1a;函数返回subStr在string中出现的位置 // 如果字符串 string 包含 subStr locate(subStr,string) > 0// 如果字符串 string 不包含 subSt…

MATLAB接收机位置解算,GPS-receiver GPS软件接收机代码 完整的捕获 解算定位 (可 8个通道) matlab 240万源代码下载- www.pudn.com...

文件名称: GPS-receiver下载 收藏√ [5 4 3 2 1 ]开发工具: matlab文件大小: 148 KB上传时间: 2015-07-02下载次数: 0提 供 者: 金亚强详细说明&#xff1a;GPS软件接收机代码 完整的捕获接受解算定位代码(可接受8个通道)-GPS software receiver codes文件列表(点击判断是…

Java基础篇4——数组

Java基础篇4——数组 1、数组的概念 当需要在Java程序中记录单个数据内容时&#xff0c;则声明一个变量即可当需要在Java程序中记录多个类型相同的数据内容时&#xff0c;则声明一个一维数 组即可&#xff0c;一维数组本质上就是在内存空间中申请一段连续的存储单元数组是相同…

python php ajax赔率,Ajax如何调用python脚本

用Flask很简单的&#xff1a;比如:index.html 放到templates文件夹下&#xff1a;$(function() {$(#calculate).click(function(){$.ajax({url: /addnumber,data:{a: $(#a).val(),b: $(#b).val()},dataType: JSON,type: GET,success: function(data){$("#result").ht…

Java面向对象编程篇1——类与对象

Java面向对象编程篇1——类与对象 1、面向过程 1.1、概念 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候一个一个依次调用就可以了 1.2、优缺点 优点&#xff1a;性能比面向对象高&#xff0c;因为类调用时…

python中发送带附件的邮件,python SMTP实现发送带附件电子邮件

本文实例为大家分享了python SMTP发送带附件电子邮件的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下可采用email模块发送电子邮件附件。发送一个未知MIME类型的文件附件其基本思路如下&#xff1a;1. 构造MIMEMultipart对象做为根容器2. 构造MIMEText对象做为邮件显…

Java面向对象编程篇2——面向对象三大特点

Java面向对象编程篇2——面向对象三大特点 1、封装 1.1、封装的概念 通常情况下可以在测试类给成员变量赋值一些合法但不合理的数值&#xff0c;无 论是编译阶段还是运行阶段都不会报错或者给出提示&#xff0c;此时与现实生活不符 为了避免上述错误的发生&#xff0c;就需…

易语言php支付宝,支付宝填表登录易语言源码

支付宝填表登录易语言源码MS_晨星天宇.版本 2.支持库 spec.支持库 HtmlView.程序集 窗口程序集_窗口1.子程序 _按钮1_被单击调试输出 (开始登录 (超文本浏览框1, “”, “”)).子程序 开始登录, 文本型.参数 超文本浏览框, 超文本浏览框.参数 账号, 文本型.参数 密码, 文本型.参…

mybatis常用jdbcType数据类型

1 MyBatis 通过包含的jdbcType类型 BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINEDTINYINT REAL VARCHAR BINARY BLOB NVARCHARSMALLINT DOUBLE LONGVARCHAR VARBINARY CLOB NCHARIN…

oracle 查询所有组合,Oracle的组合条件查询

组合条件查询&#xff0c;以下两种方式都可以&#xff1a;select b.job_id,b.source,b.create_via,b.who_create,b.location_code,b.ref_nofrom (select rownum r, a.*from (select j.*, cj.location_code, cj.ref_nofrom nfs_gbl.combine_job j, nfs_gbl.combine_job_criteria…

Java面向对象编程篇3——接口与抽象类

Java面向对象编程篇3——接口与抽象类 1、接口&#xff08;interface&#xff09; 接口中可以含有变量和方法。但是要注意&#xff0c;接口中的变量会被隐式地指定为public static final变量&#xff08;并且只能是public static final变量&#xff0c;用private修饰会报编译…

oracle sql语句 只读,Oracle_SQL语句

------------------------Oracle 的SQL 语法--------------------------第(1,2)章 结 合 语 句》1&#xff1a;创建表空间create tablespace 表空间名datafile存放文件的路径_空间名_.dbf size 30m;》2: 分配权限grant 权限| 角色 to 用户名》3&#xff1a; 创建用户create use…