解决.htaccess下的搜索伪静态字符串数据传递问题

最近一个网站需要做伪静态,所有页面都实现伪静态了,现在就差搜索页的伪静态问题,一直没有好的办法解决。
 
现在的问题是,如果按正常的思路做.htaccess下的伪静态规则,发现有些字符无法传递过去,比如下面这个:
 
RewriteRule ^search-(.*?).html$ 1.php?q=$1
 
一般来说这种规则不会有问题,但实际测试发现有一些特定字符会出问题,比如下面这种情况,
 
解决.htaccess下的搜索伪静态字符串数据传递问题
 
正常可以获取到这个中文字符的“际”,但实际上有些字会有问题。
 
于是查了一些关于中文字符的正规表达式方法,加上这个([^x00-xff\dA-Za-z]+?)测试下:
 
 
解决.htaccess下的搜索伪静态字符串数据传递问题
 
中文字符没有问题,但是加上数字就不行了,所以又找了数字的正则,加了好几种类型,也不行,后来又试了字母,所以后面又写成这样:
 
RewriteRule ^search-(.*?||.*?[^x00-xff\dA-Za-z]+?.*?).html$ 1.php?q=$1
解决.htaccess下的搜索伪静态字符串数据传递问题
 
经测试,以上代码可以正常用作搜索伪静态下的.htaccess配置,至于IIS下的Web.Config按这个思路配置就可以。

有好的文章希望林羽凡帮助分享和推广,猛戳这里我要分享

作者:林羽凡
成为卓越的代名词,很多人并不需要杰出素质的环境。——Steve Jobs
返回列表
上一篇: