mod_rewrite错误地转义字符

时间:2010-01-27 04:49:15

标签: apache mod-rewrite url-rewriting

试图找到这个问题,但没有真正起作用。

基本上,我正在尝试使用以下正则表达式:

RewriteRule ^course/filter:([a-zA-Z0-9_-\,\=]+)$ php/manage_courses.php?display=list&filter=$1 [L]

然而我在错误日志中得到500错误(注意转义的字符):

[Wed Jan 27 16:29:31 2010] [alert] [client ::1] H:/SVN/prj_us/.htaccess: RewriteRule: cannot compile regular expression '^course/filter:([a-zA-Z0-9_-\\,\\=]+)$', referer: http://localhost/~svn/prj_us/php/admin_index.php

它似乎是自动转义\ char,它不应该做...我已经尝试交换正则表达式代码的顺序,以及删除\完全但它不起作用。

有什么建议吗?干杯,为你提供帮助。

注释: - 没有“\,\ =”部分的工作,但我需要这两个字符特别是我试图重写的URL。 - .htaccess文件中的所有其他正则表达式都可以工作,尽管它们没有上面的两个字符。

2 个答案:

答案 0 :(得分:2)

除了角色类中的-字符外,您不需要转义任何内容。试试这个:

[-a-zA-Z0-9_,=]

答案 1 :(得分:0)

,=在某个范围内都不是特殊的,但-是。将-移到开头,然后删除反斜杠。