【发布时间】:2013-07-07 17:59:34
【问题描述】:
所以,基本上,旧网站完全是用 Flash 制作的,我想切换到 html 版本,将其分配给子域,并保持所有链接正常工作。 flash 的示例 url 如下所示:
http://site.com/dir/?language=french#/gallery/folder1/image1.jpg
从上面的网址,我需要得到一个漂亮的,像这样:
http://dir.site.com/FR/gallery/folder1/image1.jpg
当然,如果没有指定语言变量,我想为 url 分配一个默认语言“EN”,这样我就可以切换语言控制器(只有两种语言 - 法语/FR 和英语/ CN)。
我当前的 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>
【问题讨论】:
-
没有语言查询参数的url怎么看?
-
看起来像这样:site.com/dir/#/gallery/folder1/image1.jpg
-
mod_rewrite 不能做子串。我的意思是
?language=french不能使用 .htaccess 变成/FR/。
标签: html .htaccess mod-rewrite