如何编写为静态?

#1 shejiqi

我看手册,好像只有生成真实静态文件。但我这个网站使用静态不是很方便,不想使用静态。但是我想把网址变成 www.xxxxx.com/main/index.html   这种样式的    能实现吗

2011-01-08 14:37:32

#2 jake

如果你的网站能够支持UrlRewrite伪静态的话,可以通过配置UrlRewrite来设置上面的地址

http://speedphp.com/post/urlrewrite.html
http://speedphp.com/post/interaction-htaccess.html
http://speedphp.com/post/interaction-diy-rewrite.html

2011-01-08 19:54:30

#3 shejiqi

可以了 但是我网站有个地方有中文参数 好像会出错

2011-01-08 22:29:03

#4 jake

中文在生成URL的时候没问题,但是在IE下,接收参数的时候要用urldecode才行。

spUrl('main', 'index', array('my'=>'中文'));
生成的地址可能是
http://localhost/main/index/my/中文.html

那么在接收的时候,就应该 $my = urldecode($this->spArgs('my'));才能获取到“中文”这个值

2011-01-08 22:54:42

#5 shejiqi

喔 谢谢 还是改程序算了 生成中文太不好看了

2011-01-16 11:39:25

#6 shejiqi

我用urldecode还是不行呀  获取的是乱码  POST不用urldecode都是正常的 GET不行

2011-01-25 04:52:06

#7 shejiqi

请教JAKE大哥

2011-01-25 04:52:24

#8 jake

我用urldecode还是不行呀  获取的是乱码  POST不用urldecode都是正常的 GET不行
shejiqi 发表于 2011-1-25 04:52
浏览器地址栏直接输入中文,在IE下的编码是GBK,而在FF和chrome都是UTF8,虽然可以做GBK转UTF8的转码,但是效果总是不太好,所以如果要GET传递中文,那么在发送之前就应该先urlencode一次,然后再传输就可以保证没有编码问题。具体的做法分两种:

1. 直接在地址栏输入中文——而不是表单GET提交,那么接收的时候只能先urldecode,然后再iconv转码成UTF8。
2. 表单GET提交(比如说搜索框),接收的时候只要urldecode即可。3. 如果是表单内隐藏域有中文value,那么在value里面就应该先urlencode,然后提交后urldecode接收。

2011-01-25 09:09:40