2012-10-11 34 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