php 中文地址伪静态,.htaccess实现含中文的url伪静态跳转

2023-07-11,,

Tags伪静态

RewriteRule ^tags.html/tags.php

RewriteRule ^tags/(.)(??.))*.html$ tags.php?/$1

RewriteRule ^tags/(.)/(??.))*.html$ tags.php?/$1/

RewriteRule ^tags/(.)/([0-9])(??.))*.html$ tags.php?/$1/$2

RewriteRule ^tags/(.)/([0-9])/(??.))*.html$ tags.php?/$1/$2/

一直以来都能实现伪静态的跳转,中英文或者符号都行,但是最近的一个偶然机会下,余斗发现一些tag标签无法打开,直接报错404,其实余斗博客的大部分含中文的tag地址都没有问题,但是某些中文文件会跳过rewrite规则直接访问从而出现404,经过余斗反复的验证发现这些url出现问题的共同特征就是这个汉字被自动urlencode后带“%85”,如“全”字编码后是%e5%85%a8 “入”字的编码是%e5%85%a5 ,“公”字的编码是%e5%85%ac,但凡还有这些字符的中文路径都无法实现伪静态。

不知道是不是因为这里把%85转义成换行才导致的404,但是这个问题确实出现了,余斗查询了一些资料也没能就这个问题解决,想到,在伪静态规则里并没有专门对中文字符进行设置,不如设置一下看看,代码如下:

RewriteRule ^tags/([sS]*).html$ tags.php?/$1

php 中文地址伪静态,.htaccess实现含中文的url伪静态跳转的相关教程结束。

《php 中文地址伪静态,.htaccess实现含中文的url伪静态跳转.doc》

下载本文的Word格式文档,以方便收藏与打印。