关于Apache RewriteRule处理中文字符

时间:2017-09-09 00:09:36

标签: php .htaccess mod-rewrite escaping

今天真的很困惑: 我正在努力:

Windows NT DESKTOP-C1R460O 10.0 build 15063 (Windows 10) AMD64
Apache2.4, 
PHP 7.1.0beta3.

我在.htaccess中写了一些代码:

RewriteEngine On
RewriteBase /datang/
#
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
#
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

这很简单,大部分时间它一直工作到今天, 我的一个客户希望他的网站的URL看起来更像SEO友好:

  

http://www.example.com/product/10023/产品名称

对不起,我上面写了一些中文字,意思是“产品名称”。

当URL通过.htaccess,“产品名称”部分中的某些词语如“克”时,Apache会尝试将其自身转换为ISO-8859-1,而不是工作正常,但其中一些像“橡树”将进入UTF-8,这是正常的。

我不知道为什么,请有人可以帮忙吗?

0 个答案:

没有答案