我在使用中文字符查找关于Apache mod_rewriting的信息时遇到了困难(我能find的所有信息都与数字有关)。
我想重写/character.php?character=宠
(其中的字符是search的结果,因此会有所不同) /character/宠
。
这是我的(穷人)尝试: RewriteRule ^character/?$ characters?character=$1 [NC,L]
我将不胜感激任何帮助。
谢谢,丹
首先,你的正则表达式是不正确的。 使用?
告诉mod_rewrite
它之前的字符是可选的。 它不是任何角色的占位符。
你应该这样做,而不是:
RewriteRule ^character/(%[A-Z0-9]{3})$ characters?character=$1 [NC,L]
这个规则假定你只想捕获一个字符。 如果不是这种情况,或者您需要在其他地方使用相同的规则,则换出(%[A-Z0-9]{3})
为(%[A-Z0-9]+)
。
您还需要确保您的.htaccess
文件以Unicode格式(UTF-8)保存。
通过httpd.conf
启用mod_rewrite和.htaccess,然后把这个代码放在你的.htaccess
下的DOCUMENT_ROOT
目录下:
Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / RewriteRule ^character/(.+)$ /characters?character=$1 [NE,NC,L,QSA]