2017-01-26 119 views
1

我似乎无法找到对这个问题的答案。多个子目录的重写规则

我有一个网站与许多语言与子目录结构。现在我需要自动将它们从index.htm重定向到/

例如,

agb-german/index.htm -> agb-german/ 
agb-english/index.htm -> agb-english/ 

当然,我可以为每种语言创建一个重定向,但我认为重写也可以为性能做更好的工作。

所以,我需要这样的东西

RewriteRule ^agb-(.*)/index.(.*)$ /agb-{how-to-get-this-from-the-request?}/ [R=301,L] 

回答

1

您可以使用此规则:

RewriteCond %{THE_REQUEST} /agb- [NC] 
RewriteRule ^(agb-\w+)/index\. /$1 [R=301,L,NC] 

我们正在从输入URL匹配agb-\w+,并使用括号(...)我们$1捕获匹配的值。

+1

谢谢!这就像一个魅力:) – Florian

+0

如果我反过来需要它,以便agb-english后面的所有内容导致agb-english/index.htm? RewriteCule%{THE_REQUEST}/agb- [NC] RewriteRule ^(agb- \ w +)\。 /$1/index.htm [R = 301,L,NC] – Florian

+0

你能告诉我一个例子,你需要什么重写规则? – anubhava