2010-01-27 62 views
0

试图找到这个问题,但nothings真的工作。mod_rewrite错误地转义字符

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

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

除了角色类中的-角色外,你不需要转义任何东西。试试这个:

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

就像我相信我重写了这堆不同的方式,并试图不逃避他们,这似乎工作......谢谢! – Jacob 2010-01-27 05:17:12

0

无论,也不=是在一系列特殊的,但-是。将-移至开头,然后删除反斜杠。