htaccess:重写如果url是www.domain.com/some-string/xxx但不是www.domain.com/some-string-is-here

时间:2013-02-13 11:37:03

标签: .htaccess redirect

我的htaccess如下所示:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^some-string/$ [NC]
RewriteRule ^some-string(.*)$ http://www.domain.com$1 [R=301,L]

因此,www.domain.com/some-string/xxx的所有请求都应重定向到www.domain.com/xxx(从子文件夹到主域)。现在我遇到的问题是,一篇文章中包含了他名字中的some-string部分,例如www.domain.com/some-string-is-here。结果是找不到文章。

如何调整重定向?

1 个答案:

答案 0 :(得分:1)

使RewriteRule更具体一点应该有所帮助;在这种情况下,RewriteCond不是必需的。由于只应重写以some-string/开头的请求(包括/),因此将/附加到规则对我来说非常有用:

RewriteEngine On
RewriteBase /
RewriteRule ^some-string/(.*)$ http://www.domain.com/$1 [R=301,L]

如果您还想重写www.domain.com/some-string(仅限此而不是www.domain.com/some-string-more),您可以尝试重写:

RewriteRule ^some-string(/.*)?$ http://www.domain.com$1 [R=301,L]