.htaccess RedirectMatch可以从网址中删除部分吗?

时间:2013-04-05 20:37:52

标签: .htaccess mod-rewrite

我想重定向此网址:

domain.asd/category/node123/attachment/file123

到这一个:

domain.asd/category/node123

从最后删除attachment/fn1aa

只有node123file123是动态的。

以下代码有效,但它有效,安全且对资源友好?

RedirectMatch permanent category(.*)attachment /category/$1

欢迎任何建议。 THX。

1 个答案:

答案 0 :(得分:1)

尝试:

RedirectMatch permanent ^/category/([^/]+)/attachment /category/$1

它更严格,不会复制正斜杠(/)。你的正则表达式也会匹配这样的东西:

domain.asd/foo/something/category/a/b/c/d/e/f/some-attachment

通过重定向到:

/category//a/b/c/d/e/f/some-

这可能不是你想要做的。它是安全的,并且资源友好,因为它使用了一个htaccess文件(这是一个轻微的性能命中,而不是把它放在vhost配置中)。