.htaccess内容如下:
RewriteEngine On
RewriteBase /
RewriteRule .*?\.htm$ index.html
我想实现的是以.htm结尾的页面重写到index.html我测试了二条网址:第一条:http://127.0.0.1/张学良简介.htm // 可以成功重写到index.html第二条:http://127.0.0.1/%D5%C5%D1%A7%C1%BC%BC%F2%BD%E9.htm //失败如下:提示:You don't have permission to access /ÕÅѧÁ¼¼ò½é.htm on this server.不知道是什么原因啊?我只是把"张学良简介"用了函数urlencode函数编码了一下就不行了。请问如何修改啊?是什么原因呢?
我用的是apach服务器
RewriteEngine On
RewriteBase /
RewriteRule .*?\.htm$ index.html
我想实现的是以.htm结尾的页面重写到index.html我测试了二条网址:第一条:http://127.0.0.1/张学良简介.htm // 可以成功重写到index.html第二条:http://127.0.0.1/%D5%C5%D1%A7%C1%BC%BC%F2%BD%E9.htm //失败如下:提示:You don't have permission to access /ÕÅѧÁ¼¼ò½é.htm on this server.不知道是什么原因啊?我只是把"张学良简介"用了函数urlencode函数编码了一下就不行了。请问如何修改啊?是什么原因呢?
我用的是apach服务器
IE和FireFox对中文URL的编码不同,要注意.
页面中的链接最好是UTF8编码的,如果是GB2312,一定会有问题.所以一定要iconv utf-8然后再Urlencode. RewriteRule ^(.*).htm$ index.html
测试了一下,这位老兄的基本正确echo urlencode('张学良简介');UTF8下:%E5%BC%A0%E5%AD%A6%E8%89%AF%E7%AE%80%E4%BB%8B
ANSI下:%D5%C5%D1%A7%C1%BC%BC%F2%BD%E9多字节和双字节编码的结果不一样
%E5%BC%A0%E5%AD%A6%E8%89%AF%E7%AE%80%E4%BB%8B.htm能正确解析至于Rewrite只接收UTF8?这个到不得而知!
然后看看你的那能不能通过
如果通,这说明和apache字符集设定有关,不一定仅支持utf-8
测后给个反馈
apache的默认字符集改为gb2312
已经测试了,还是不行,可以证明8楼的朋友说法是正确的,即apach的rewrite功能只能接收utf-8格式的字符,反之就算规则写对,也会出现我一楼所提出的问题另外请fxs_2008帮忙看一下这个正是如何完成:http://topic.csdn.net/u/20091219/11/3105168e-6c2f-4137-8e6f-68b9f0b9a0b4.html