2010-01-27 24 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

無論,也不=是在一系列特殊的,但-是。將-移至開頭,然後刪除反斜槓。