2012-10-11 33 views
0

我需要我的網站從這個URL重定向:如何使用.htaccess重定向?

mysite.com/old/dir/param1/param2/... 

mysite.com/dir/param1/param2/... 

我需要保持的參數,可以只是刪除了「舊」的網址。

如何將此規則添加到我的.htaccess中?

謝謝!

這裏是我的.htaccess:

<IfModule mod_rewrite.c> 
    RewriteEngine On 

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

    RewriteRule ^old/dir/(.*) mysite.com/dir/$1 [R=301,L] 
</IfModule> 

回答

0

權規則是

,我把所有的其他規則之前放置。所以我的.htaccess看起來像:

<IfModule mod_rewrite.c> 
    RewriteEngine On 

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


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

無論如何,謝謝! :)

0

你可以只寫這樣。

Rediret 301 mysite.com/old/dir/param1/param2/(.*) mysite.com/dir/param1/param2/$1 

如果你計劃的old/dir整個目錄重定向到dir/,那就試試這個:

Redirect 301 mysite.com/old/dir/(.*) mysite.com/dir/$1 

你可以嘗試下一個選項是,URL重寫。

假設你已經確立了自己重寫引擎上,並設置了重寫基地,添加這些行:

RewriteRule ^old/dir/(.*) mysite.com/dir/$1 [R=301,L] 
+0

重定向301 mysite.com/old/dir/(.*)mysite.com/dir/$1在「內部服務器錯誤」中返回。這不是重定向 – content01

+0

其實它是重定向到http://www.mysite.com/dir/?/old/dir/param1/param2 – content01

+0

我已經更新了我的答案。看看是否解決了這個問題。 – Rocky

-1

你必須創建在mysite.com/old/dir/param1/ .htaccess文件參數2/... ,並把這個在你的文件:

Redirect 301/http://example.com/ 
+0

事情是/ old/dir不存在了 – content01