0

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

www.example.com/gb/etc1/etc2/etc .. _

但有时也 www.example.com/ uk #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 => gb 转换似乎根本没有被调用。

回答

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

4

1 回答 1

0

这应该可以解决问题:

Options +FollowSymLinks

DirectoryIndex index.php

RewriteEngine on        
RewriteRule   ^/uk(.*) /gb$1 [R=301,L]
于 2012-11-14T17:59:35.367 回答