2012-11-07 300 views
1

我想重定向一些用戶請求我的Apache服務器指向不存在的文件有問題,使用這樣的事情:阿帕奇rewrite_module

RewriteCond %{REQUEST_URI} !-f 
RewriteRule ^/a/b/c.* /d/e$1 [L] 

我的本意是,如果一些用戶請求文件http://whatever.com/a/b/c/something,這沒有按不存在,而不是發送404錯誤,重寫URL從http://whatever.com/d/e/something得到它,我可以肯定該文件確實存在。

我知道有很多關於這個話題,但我確實非常激烈的研究,我的問題是,無論我嘗試什麼樣的組合,我似乎無法得到重寫模塊工作..

即使是這樣的:

RewriteRule ^(.*) /index.html [L] 

這大概會重定向EVERY請願的index.html,但不起任何作用。

它應該被加載,如apache2ctl -M輸出rewrite_module爲正確加載在調試級別

記錄錯誤,我只看到,用戶請求不存在的文件,和Apache回答「404文件不不存在'的錯誤..

我是服務器管理員,所以我沒有使用.hcaccess,我直接編輯httpd.conf文件,所以不應該有壓倒一切的指令問題。

我錯過了什麼?

回答

0
RewriteCond %{HTTP_HOST} ^yourdomain.com 
RewriteRule (.*) http://www.yourdomain.com/$1 [R=301,L] 

...將用戶重定向到索引頁面。

+1

這不是我所問的,謝謝。我想這是: 'RewriteCond%{REQUEST_URI}!-f'需要有完整的服務器的文件系統路徑才能真正檢查它是否是一個文件並且它存在。 因此類似於: 'RewriteCond {DOCUMENT_ROOT}%{REQUEST_URI}!-f' 工作得很好! – frankies