2013-05-21 35 views
2

我與以下情形重定向規則掙扎的父文件夾,而不是子文件的.htaccess:只有重定向

父文件夾/網站(着陸頁)

/約/領導人

子網站(鏈接配置文件)

/約/領導者/名1 /約/領導者/名2

我需要禁用/約/領導者頁面並重定向到/ ,但配置文件仍應在線。

它必須是類同此=

RedirectMatch 301 /about/leaders/(.*)/
RedirectMatch 301 /about/leaders(.*) /$1 

但是,這是行不通的。在子配置文件上,part/about/leaders會被刪除,並且只保留/ nameX。我找不到答案。也許其他人想要實現類似的事情。

不管怎麼說,我很高興爲每個幫助

回答

9

Greeings延,

認爲你需要的代碼

RedirectMatch 301 ^/about/leaders/?$/

我肛門有關使用錨一行。因此,首先鎖定URL的主要部分^。然後,您可以選擇將尾隨的「/」與?相匹配。然後通過$將它錨定到URL的末尾。應該是這樣的。不需要第二個指令。

由於/about/leaders/name的更多擴展URL與模式不匹配,因此它們應該可以正常訪問。

希望這會有所幫助!

0

你可能使用mod_rewrite會更好。啓用了mod_rewrite並通過httpd.conf的.htaccess,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^about/leaders(/.*|)$ /$1 [L,R=302,NC] 

一旦你驗證它是否工作正常,更換R=302R=301。避免在測試mod_rewrite規則時使用R=301(永久重定向)。

+0

謝謝,anubhava!但我想下面的答案(是較少的工作來實現) – jens

+0

當然,這是你的選擇,只是告訴你,其他答案是不會重定向URI,如'/ about/leaders'或'/ about/leaders/abcd' – anubhava