php 中文地址伪静态,.htaccess实现含中文的url伪静态跳转
因为网站用的是apache环境,所以伪静态规则都写在.htaccess文件中,而余斗的博客伪静态规则是应用在tag页中,主要代码为以下:
#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,但凡还有这些字符的中文路径都无法实现伪静态。
经过查询0085在unicode字码表里代表换行:
不知道是不是因为这里把%85转义成换行才导致的404,但是这个问题确实出现了,余斗查询了一些资料也没能就这个问题解决,想到,在伪静态规则里并没有专门对中文字符进行设置,不如设置一下看看,代码如下:
RewriteRule ^tags/([sS]*).html$ tags.php?/$1
添加进.htaccess文件,重启apache,神奇的事情出现了,原来404的tag页实现跳转了,虽然没能弄清为什么可以解决这个问题,但是这个问题还是被解决了,把方法共享出来,希望可以帮助到同样遇到这个问题的小伙伴。
Tips:余斗的apache版本为Apache/2.4.18。
php 中文地址伪静态,.htaccess实现含中文的url伪静态跳转相关推荐
- 百度地图常用的几个webAPI(中文地址转经纬度,经纬度转中文地址)
1.根据经纬度获取获取中文地址: public static EntityBean getaddress(String Lat,String Lng) { EntityBean result = ne ...
- java 字符长度 中文_java 字符串的长度 含中文 英文 空格
? class="java" name="code">package com.urt.module.util; import java.io.Unsupp ...
- 获取经纬度 +经纬度转换成中文地址
//获取经纬度信息 getlocaton() { let _that = this uni.getLocatio ...
- 数据挖掘SPSS Clementine 12.0.3 多国语言(含中文)破解版
数据挖掘SPSS Clementine 12.0.3 多国语言(含中文)破解版 2013-01-11 13:05 2111人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: 数据挖掘(3) 作者 ...
- Java 基础语法 + 常见缩写单词全称(含中文翻译)
1. 一些缩写单词的全称(含中文翻译) IDE - Integrated Development Environment 集合开发环境 XML -- Extensible Markup Languag ...
- iDeneb v1.6 安装教程(含中文自定义详细驱动说明)
iDeneb v1.6 安装教程(含中文自定义详细驱动说明) 本系统是适合在非苹果的PC电脑上安装的,所以不要在苹果机上使用. 此教程重点在二楼: 最低配置: CPU SSE2 x86,512MB 内 ...
- python中文字符串编码_浅谈python下含中文字符串正则表达式的编码问题
前言 Python文件默认的编码格式是ascii ,无法识别汉字,因为ascii码中没有中文. 所以py文件中要写中文字符时,一般在开头加 # -*- coding: utf-8 -*- 或者 #co ...
- python 中文字符串截取,Python实现针对含中文字符串的截取功能示例
本文实例讲述了Python实现针对含中文字符串的截取功能.分享给大家供大家参考,具体如下: 对于含多字节的字符串,进行截断的时候,要判断截断处是几字节字符,不能将多字节从中分割,避免截断后乱码 下面给 ...
- Apache+Tomcat中支持“UTF-8”编码的中文地址
Tomcat默认安装时,是8080端口.这时,要使Tomcat支持"UTF-8"的中文地址,只需要在server.xml文件中,将8080端口的<connector>标 ...
- 正则 8-18位长度,数字,字母,字符 任意两种,不含中文测试通过
原文:正则 8-18位长度,数字,字母,字符 任意两种,不含中文测试通过 String regex = "^(?!^(\\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^ ...
最新文章
- 论文解读|激光视觉融合的V-LOAM
- Unknown host ‘services.gradle.org‘ 解决方法
- OpenCL异构并行计算编程笔记(2):命令队列与内存对象
- 【KVM系列07】使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照
- Ecos笔记--2014/5/3
- 【转】ABP源码分析三十五:ABP中动态WebAPI原理解析
- JDK源码 - BitSet的实现
- pdf内容怎么复制到word文档里_pdf文件怎么放到word里?这招实在是太好用了
- 【放马过来---谈禅修打坐】
- 关于C2100间接寻址的问题
- IDC发布2021年中国云计算10大预测;Docker 桌面为 M1 推出技术预览版
- 关于parser.add_argument中choices参数问题
- 能量原理与变分法笔记06:高阶导数的变分问题(包含函数的高阶导数)
- c++读取图片_四、faster-rcnn源码阅读:数据流读取
- ballerina 学习二十七 项目k8s部署 运行
- 魅族新系统android o,魅族最新系统 Flyme 1.0 for M9 正式版 基于Android 4.0
- 大学生或者程序员上B站学习编程必备的几位优秀UP主
- 鸟哥Linux私房菜:第六章笔记
- 第十一次 作业 视图的应用
- SR-IOV 网卡虚拟化技术