所以,基本上,旧网站是完全用flash制作的,我想切换到html版本,将其分配给子域,并保持所有链接正常工作。 flash的示例网址如下所示:
http://site.com/dir/?language=french#/gallery/folder1/image1.jpg
从上面的网址,我需要得到一个漂亮的,如下:
http://dir.site.com/FR/gallery/folder1/image1.jpg
当然,如果未指定语言变量,我想为URL分配一个默认的lang“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中的hash(#) - 我在index.php文件中创建了JS(这是我的第一个控制器),所以唯一剩下的就是语言......
<script type="text/javascript">
if (location.href.indexOf("#") > -1) {
location.assign(location.href.replace(/\/?#/, ""));
}
</script>
答案 0 :(得分: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