2013-02-13 45 views
0

htaccess如下所示:htaccess的:如果重写URL是www.domain.com/some-string/xxx但不www.domain.com/some-string-is-here

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

使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] 
+0

现在我有'RewriteRule^some-string /(.*)$ http://www.domain.com/$1 [R = 301,L]'。我唯一的问题是,如果某人输入了“www.domain.com/some-string”,他将被重定向到一个错误的页面(Wordpress在这里找到一些页面)。通过'www.domain.com/some-string /',它按照预期工作。 – testing 2013-02-14 11:22:42

+0

带'^ some-string(/.*)?$'的第二个版本也应该有助于重写'www.domain.com/some-string'。 – 2013-02-14 11:45:57