我目前正尝试将我的语言特定虚拟网址重新编入index.html。 可悲的是它不起作用所以我在这里问你。
在我的index.html页面上,我使用历史记录api设置虚拟网址,如下所示:
history.pushState(null, null, 'de');
这样工作完全正常,但是当我手动输入网址时,服务器会尝试打开index.php / de,该数据存在。
我的想法是将所有虚拟网址重定向,让我们说“/ de /”和“/ en /”到index.html文件并保留初始网址。然后,我将使用js。
在index.html中进行导航和内容加载我的mod_rewrite代码:
RewriteEngine on
RewriteRule "^/de?$" "/index.html"
遗憾的是,这段代码没有重定向。我的服务器日志说无法找到domain.com/de。
要解决这个问题的想法吗?
欢呼声 马可
答案 0 :(得分:1)
RewriteRule
会删除前导斜杠
因此,您正在尝试匹配错误的路径(这就是为什么它不起作用)。
此外,在规则中删除"
并在之后添加L
标记。
您可以用这个替换代码
RewriteEngine On
RewriteRule ^(?:de|en)$ /index.html [L]
注意:确保Apache配置中 mod_rewrite 已启用(以及 htaccess 文件允许)
编辑:考虑下面的评论
RewriteEngine On
RewriteRule ^(?:de|en)(?:$|/.+) /index.html [L]