2013-02-13 55 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