2016-02-04 111 views
1

當有404缺頁錯誤此URL被稱爲:htaccess的重寫後/與重定向

https://domain.com/404/

裏面的404文件夾只有一個htaccess文件,將重定向到特定語言的錯誤頁面(僅子文件夾其中一個index.html)。

/ 
    404 
    .htaccess 
    pt 
     index.html 
    en 
     index.html 

htaccess文件代碼:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

# If Accept-Language starts with 'pt', 
# then redirect (only) subdirectory 'pt' 
RewriteCond %{HTTP:Accept-Language} ^pt [NC] 
RewriteRule ^/?$ %{REQUEST_URI}pt [L,NC] 

# Otherwise, redirect to en 
RewriteRule ^/?$ %{REQUEST_URI}en [L,NC] 
</IfModule> 

最終的URL看起來像這樣葡萄牙例如:domain.com/404/pt/

什麼我需要改變,這樣的網址仍然會重定向到索引.html在語言特定的子文件夾中,但看起來像domain.com/404(帶或不帶尾部斜線)?

謝謝。

+0

重定向404在外部是一個壞主意,開始 - 因爲這依賴於HTTP狀態代碼信息,這樣客戶(比如fe搜索引擎機器人)將不會再獲取他們最初請求的資源的狀態碼404。 – CBroe

回答

1

對於無聲重寫以特定語言404使用這種的.htaccess中/404/子目錄:

ErrorDocument 404 default 
DirectoryIndex index.html 
RewriteEngine On 
RewriteBase /404/ 

# If Accept-Language starts with 'pt', 
# then redirect (only) subdirectory 'pt' 
RewriteCond %{HTTP:Accept-Language} ^pt [NC] 
RewriteRule ^/?$ pt/index.html [L] 

# Otherwise, redirect to en 
RewriteRule ^/?$ en/index.html [L] 
+0

無法正常工作:瀏覽器URL讀取'domain.com/404 /',但是沒有加載從子文件夾(對應於語言)報告永無止境的重定向循環錯誤和index.html。 – user2690888

+0

沒有Chrome,但Firefox。它顯示了許多302,全部用於'https:// domain.com/404 /' – user2690888

+0

在404 htaccess中只有其他語言規則像pt。但是我發現:當我在瀏覽器中輸入'domain.com/404 /'時,出現此錯誤'/var/www/virtual/username/domain.com/404/pt/ not found on this server'。當我輸入'domain.com/404/pt /'時顯示。 – user2690888