2013-07-15 55 views
0

當我關閉重寫時,404正確地轉向Google(僅用於測試),就像它應該的那樣。當它打開時,首先運行重寫並完全忽略ErrorDocument聲明。我不明白爲什麼這樣做。在Mod重寫Htaccess之前運行ErrorDocument

Options +FollowSymlinks 
ErrorDocument 404 http://www.google.com 
<IfModule mod_rewrite.c> 
RewriteEngine Off 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

回答

1

好了,下面你.htaccess是說

RewriteCond %{REQUEST_FILENAME} !-f  # if not a file 
RewriteCond %{REQUEST_FILENAME} !-d  # if not a directory 
RewriteRule . /index.php [L]   # redirect to index.php 

所以,要麼去除這些規則或將重寫引擎關閉。

編輯
固定鏈接通過捕捉404(S),因爲鏈接結構物理不存在的工作。 ErrorDocument不會覆蓋此內容,因爲如果mod_rewrite決定忽略404,它仍可以用作回退事件。例如,現在

RewriteCond %{REQUEST_FILENAME} !-f  # if not a file 
RewriteCond %{REQUEST_FILENAME} !-d  # if not a directory 
RewriteCond %{REQUEST_URI} ^/wordpress/ # & points to wordpress 
RewriteRule . /index.php [L]   # redirect to index.php 

,一個domain.com/wordpress/no-such-file.php會重定向到/index.phpdomain.com/no-such-file.php將您重定向到谷歌(因爲ErrorDocument)。

+0

得到了......我需要該部分的永久鏈接才能正常工作。我原以爲ErrorDocument會在這部分之前重定向。 –

+0

@AndrewThreadgill請檢查更新。 –

+0

好吧,我將如何重定向被永久鏈接捕獲的404? –

1

我能夠使用

if (is_404()) { 
     wp_redirect('static.htm'); 
     exit; 
    } 

進一步定製我的404來解決我的問題。

+0

+1分享您的解決方案。 –