2011-09-24 86 views
1

如果規則:Apache的mod_rewrite的不匹配URL包含百分號

RewriteRule myurl /newurl 

匹配:

http://localhost:8080/test/xxxmyurlyyy 

爲什麼它不匹配呢?

http://localhost:8080/test/xxxmyurly%EDyy 

編輯:

我剛剛發現UTF-8編碼的作品就好了。如果我寧願使用%C3%AD而不是%ED就沒關係。我仍然需要啓用unicode。

回答

1

它似乎匹配得很好。鑑於這種:

RewriteEngine On 
RewriteLog /tmp/rewrite.log 
RewriteLogLevel 5 
RewriteRule myurl /stackexchange/foo.html 

如果我取這樣的:

curl http://localhost/test/xxmyurly%EDyy 

我看到這個/tmp/rewrite.log:

(3) applying pattern 'myurl' to uri '/test/xxxmyurly?yy' 
(2) rewrite '/test/xxxmyurly?yy' -> '/serverfault/foo.html' 

而且我得到正是我期望(文檔內容「這是一個測試」)。

我懷疑你的問題不是你認爲的問題。啓用RewriteLog和 查看顯示內容,然後在此處發佈結果。此外,看到更多的 (理想情況下,所有)您的配置也會有所幫助。

+0

嗨,騙子。當URL不匹配時沒有日誌輸出。可能是一個錯誤。我使用Apache 2.2 for Windows 64位。 – Eduardo

+0

根本沒有輸出*?我需要看到你的完整配置,以幫助進一步;即使模式不匹配,你仍然期望看到來自'mod_rewrite'的日誌輸出。至少,你的'access_log'是否顯示請求? – larsks

+0

根本沒有輸出。 Access_log也不起作用。這是我完整的配置:http://notepad.cc/flelsazbu54 – Eduardo

相關問題