2013-07-26 44 views
0

我正在重建我的整個網站的過程中,以前的版本只使用靜態html頁面,是一個噩夢來管理。RewriteRule搞砸了301重定向

在新的網站,我已經有一個具有以下一個.htaccess

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /MySite/?q=$1 

它通過PHP重寫的URL。

不過,我還需要做的就是添加行這樣的:

Redirect 301 /oldpage.html http://www.mysite.com/dir/newpage.html 
Redirect 301 /oldpage2.html http://www.mysite.com/dir/newpage2.html 
Redirect 301 /oldpage3.html http://www.mysite.com/dir/newpage3.html 

我的網站的網址目錄結構已經完全改變了,我有很多在谷歌索引的網頁,需要301他們到新的網址。

我試着加入這些新的301個指令來結束我的現有.htaccess但後來我最終會被重定向這樣的:

http://www.mysite.com/dir/newpage.html?q=oldpage.html

我不希望它有查詢字符串最後,我該如何刪除它?

回答

1

就把它們主要重定向之前L指令:

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule ^oldpage\.html$ /dir/newpage.html [R=301,NC,L] 
RewriteRule ^oldpage2\.html$ /dir/newpage2.html [R=301,NC,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /MySite/?q=$1