2011-01-24 69 views
2

我使用下面的刪除我的index.php在笨 -URL重寫,同時使用笨

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L] 

我與我的笨寫入新的替換舊的網站,因爲這個我需要重寫一些舊的網址到新的網址。這是工作的罰款單頁,但是我正在與以下重寫一個問題 -

RedirectMatch 301 ^/comments/(.*)/$ /location/$1 

這在理論上應該重定向你: http://www.mysite.com/comments/123http://www.mysite.com/location/123

因爲我刪除索引。 PHP的通過重寫,我結束了被指向 -

http://www.mysite.com/location/123?/comments/123/

有誰知道如何解決這一問題?

謝謝。

回答

1

你不應該混用mod_alias(RedirectMatch)和mod_rewrite。試試這個mod_rewrite規則:

RewriteRule ^comments/(.*)/$ /location/$1 [L,R=301] 

現在只要確保把這個規則放在你的其他規則前面。

+0

謝謝,我在URL重寫方面並不擅長。以爲我不應該混淆這兩者,而是我能找到的唯一方法。 – Tom 2011-01-25 12:32:41

1

最後得到了它,對於那些有興趣,我不得不評論添加到我未能在第一篇文章提到一個重寫條件:

RewriteCond $1 !^(index\.php|media|images|css|js|comments|robots\.txt)

希望這可以幫助別人。