0

所以,基本上,旧网站是整个 Flash 制作的,我想切换到 html 版本,将其分配给子域,并保持所有链接正常工作。flash 的示例 url 如下所示:

http://site.com/dir/?language=french#/gallery/folder1/image1.jpg

从上面的 url,我需要得到一个漂亮的,像这样:

http://dir.site.com/FR/gallery/folder1/image1.jpg

当然,如果没有指定语言变量,我想为 url 分配一个默认语言“EN”,这样我就可以切换语言控制器(只有两种语言 - 法语/FR 和英语/EN)。

我当前的 htaccess 文件(http://site.com/dir/.htaccess)如下所示:

RewriteCond %{REQUEST_URI} ^/dir
RewriteRule ^(.*)$ http://dir.site.com/$1 [R=301,L,P]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

现在我只需要像上面的例子一样转换语言变量,但是当我试图在 htaccess 中设置另一个规则时,我的网站会出现重定向循环错误:/

至于 url 中的哈希 (#) - 我在 index.php 文件(这是我的第一个控制器)中制作了 JS,所以唯一剩下的就是语言......

<script type="text/javascript">
    if (location.href.indexOf("#") > -1) {
       location.assign(location.href.replace(/\/?#/, ""));
    }
</script>
4

1 回答 1

0

这应该工作

RewriteEngine on
RewriteBase /

RewriteCond %{QUERY_STRING} language=french [NC]
RewriteRule ^dir/.*$ http://dir.site.com/FR? [R=301,NC,L]

RewriteRule ^dir/.*$ http://dir.site.com/EN? [R=301,NC,L]

重定向如下

http://site.com/dir/#/gallery/folder1/image1.jpg [OR]
http://site.com/dir/?language=english#/gallery/folder1/image1.jpg
 => http://dir.site.com/EN#/gallery/folder1/image1.jpg

http://site.com/dir/?language=french#/gallery/folder1/image1.jpg
 => http://dir.site.com/FR#/gallery/folder1/image1.jpg
于 2013-07-07T09:59:34.497 回答