更改了路径的一部分,需要将旧的重定向到新的

时间:2012-11-14 15:08:50

标签: .htaccess mod-rewrite

我在基本路径中更新了国家/地区代码,我正在尝试最终转到的重定向用户: www.example.com/uk/etc1/etc2/etc ..

www.example.com/的 GB / ETC1 / ETC2 /等。

但有时也有www.example.com/ 英国 #etc

我认为这在mod_rewrite中相当微不足道我无法工作。

我觉得最接近的是以下规则,但是当我降落在英国时没有任何反应。

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteRule .* index.php [L] #this is active already on the page

    RewriteRule   ^/uk(.*) /gb(.*) [R]
</IfModule>

编辑:

这似乎更接近但我陷入了无休止的循环:

RewriteRule ^uk(.*) /gb$1 [R]

编辑2 / (3)回答

这似乎正确重定向(正确):

RewriteRule ^uk(.*)$ /gb$1 [R=302,L]

RewriteRule .* index.php [L]

但是页面上的格式被打破了,看起来像是一些循环问题。

但是格式化不正确,如果我交换了两个RewriteRules格式是正确的但是uk =&gt; gb转换似乎根本没有被调用。

答案

注意Rewriteconditions,我没有注意到它们的重要性,我删除它们原始的index.php重写,这意味着它无法找到任何媒体。 我没有注意到应用于原始index.php的重写条件

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

Options +FollowSymLinks

DirectoryIndex index.php

RewriteEngine on        
RewriteRule   ^/uk(.*) /gb$1 [R=301,L]