如何使用.htaccess重定向?

时间:2012-10-11 16:30:13

标签: .htaccess redirect

我需要从此网址重定向我的网站:

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>

3 个答案:

答案 0 :(得分: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 Rewriting。

假设您已设置重写引擎并已设置重写基础,请添加以下行:

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

答案 1 :(得分: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>

非常感谢! :)

答案 2 :(得分:-1)

你必须在mysite.com/old/dir/param1/param2 /中创建一个.htaccess文件。 并把它放在你的档案中:

Redirect 301 / http://example.com/