Drupal 7 开发内部培训资料, 分头诗人

drupal7使用系统内置的search进行中文搜索会报错

赞成!
0
否决!

我下载的drupal7.22
环境Windows 8: IIS8+FastCGI+PHP5.5+MySQL5.6
搜索英文内容不会报错,只要搜索中文内容就会提示:

Error
The website encountered an unexpected error. Please try again later.

Error message
PDOException: in dblog_watchdog() (line 160 of D:\Coding Files\Web\PHP\drupal-7.22\modules\dblog\dblog.module).

我没有配置任何模版,只是新安装了drupal7、views模块。

8 个回答

赞成!
0
否决!

这个错误跟 PHP exception 有关,你可以在‘Recent log messages’ 中查看,前提是 ‘Database logging’ 模块打开,

过滤条件为所有跟 'php' ,‘error’ 有关的,这里就能查到更多信息。

 

我想你这个错误是跟iis 运行php有关

赞成!
0
否决!

谢谢你的指教,但是我在Recent log messages中惊奇的发现,根本就没有对中文搜索的记录,但是针对search进行英文搜索是有记录的,比如article: added I'm Loving you~~.

 

我也觉得是IIS跑PHP的问题,但是,我觉的应该能配置好,可是我真的不知道问题在哪里。

 

希望能得到你进一步的帮助,谢谢。

赞成!
0
否决!

admin/reports/dblog 打开这个页面,查看问题所在

赞成!
0
否决!

谢谢,但是,记录里面根本没有相关内容,这是不是太奇怪了。

赞成!
0
否决!

我点错了,设置成为最佳答案了,我点回复的来着。

赞成!
0
否决!

看看是否有开启URL rewrite。查看 Clean URLs with IIS

赞成!
0
否决!

你说的太对了,我是选择了Clean Urls,然后开启了Url重写模块2.0,倒入了.htaccesss(但是有错误,我把错误的地方删除了)。

这样,虽然能使用整洁URL了,但是在Search时就出问题了。

搜索的内容会被提交到地址栏,中文是Base64转码了,所以会检索到类似%这样的特殊字符(即便没有特殊字符也不会找到结果),所以问题应该就是这里了。

 

现在是,要么我放弃使用Clean URL,要么找到一个可用的 Rewrite规则!

 

或者,能不能就是Search 模块不使用Clean URL?

赞成!
0
否决!

本问题已经解决,是系统对URL编码处理的问题。

相关解决问题的Patch已经在官方找到解决方案:
https://drupal.org/node/1922802