2014-02-12 35 views
2

我有一些301重定向規則失敗,因爲URL中的大寫字母。問題是...他們是如何出現在舊網站的,所以我希望他們區分大小寫。.htaccess 301重定向規則不起作用,因爲大寫字母

這不起作用:

Redirect 301 /folder/HeyThere.html http://www.newsite.com 

但這確實

Redirect 301 /folder/heythere.html http://www.newsite.com 

似乎並不像一個小寫字符規則適用於大寫和小寫字母,但我需要爲其中包含大寫字母的網址進行此項工作。我想讓它適用於兩者,但是如果有人來自帶有大寫字母的URL,我可以做些什麼來確保此功能正常工作?

回答

1

您更好的使用mod_rewrite爲忽略大小寫處理:

RewriteRule ^folder/heythere\.html$ http://www.newsite.com [R=301,NC,L] 

由於NC標誌(任何情況下)的存在這裏會重定向都/folder/HeyThere.html/folder/heythere.html到newsite。

+0

在你的答案中提供的語法似乎並沒有服用效果......爲小寫或大寫 – RCNeil

+0

你我的規則之前把'RewriteEngine敘述On'?順便說一句,這應該被放置在'DocumentRoot/.htaccess'不在'/ folder/.htaccess'中。 – anubhava

+0

確實。在'Rewrite Engine On'和多重工作'301重定向'規則之後,我將這條規則放在多個位置之後。在根。有沒有另一個規則與此衝突? – RCNeil

0

您可以使用RedirectMatch的正則表達式來創建動態規則。

RedirectMatch 301 /folder/(?i)HeyThere.html http://www.newsite.com

(?i)中用於不區分大小寫爲下一個字符。

我希望這會爲你工作:)