2012-01-03 79 views
3

我試圖重定向除了那些以特定路徑開頭的所有請求。Apache重寫所有的URL,除了那些以特定路徑開頭的URL

例如,

http://www.example.com/mypath1應該重定向

http://www.example.com/mypath2不應重定向

其他的一切應該重定向

到目前爲止,香港專業教育學院試圖讓它工作只使用其中一個異常路徑lik E本:

RewriteRule ^(?!/mypath1/).*$ http://www.google.com/? [R=301,L] 

像這樣:

RewriteCond %{REQUEST_URI} !^/mypath1/.* [NC] 
RewriteRule ^.*$ http://www.google.com/? [R=301,L]` 

像這樣:

RewriteCond %{REQUEST_FILE} !^/mypath1/.* [NC] 
RewriteRule ^.*$ http://www.google.com/? [R=301,L] 

不過一切我嘗試只是重定向所有請求。 有誰知道如何做到這一點?

+1

當我將第二條規則(與REQUEST_URI)放在我的虛擬主機配置文件中並且它按預期工作時。你確定在某個地方沒有其他的規則會干擾嗎? – 2012-01-03 19:06:19

回答

1

我已經設法解決了這個問題,我正在做的請求被稍後在apache配置中重定向到一個錯誤頁面,然後被捕獲所有重定向。

如果其他人有類似的問題,我建議使用Apache RewriteLog,因爲這有助於查明問題。要做到這一點,只需在您的VHOST中添加此項:

RewriteEngine on 
RewriteLog "C:/devenv/Apache2/logs/rewrite.log" 
RewriteLogLevel 2