2016-09-15 87 views
-1

我需要創建一個.htaccess重定向,如果用戶輸入URL www.olddomain.com/bonus重定向到www.newdomain.com/bonus和任何其他頁面或舊域的根到www.newdomain.comHtaccess重定向內部錯誤

有一段時間我一直在使用這個代碼來實現它

RedirectMatch 301 ^/bonus/ http://www.newdomain.com/bonus/ [L] 
RedirectMatch 301 ^/ http://www.newdomain.com/ [L] 

但自上週以來,它只是導致內部服務器錯誤。

我發現錯誤是由每行上的[L]造成的。如果我將其刪除,則不會出現錯誤,但即使用戶轉到www.olddomain.com/bonus,用戶也會一直重定向到www.newdomain.com

我該如何解決這個問題?

回答

1
RedirectMatch 301 ^/bonus/ http://www.newdomain.com/bonus/ [L] 
RedirectMatch 301 ^/ http://www.newdomain.com/ [L] 

這些指令不會有結果,所以很難說爲什麼你突然發現了錯誤。

正如您所建議的[L]標誌是什麼導致500內部服務器錯誤。這是無效的語法 - 但這有總是無效的語法!? RedirectMatch是一個mod_alias指令。而尾隨標記(如[L]),是一個mod_rewrite(即RewriteRule)功能。

即使他去www.olddomain.com/bonus

但無論是將這些指令重定向上面的網址。它只會將www.olddomain.com/bonus/後面的斜線)重定向。如果您需要匹配上述URL,則需要從指令中刪除尾部斜槓。例如:

RedirectMatch 301 ^/bonus http://www.newdomain.com/bonus 
RedirectMatch 301 ^/ http://www.newdomain.com/