好吧,基本上我有部分.htaccess部分工作,但还不完全。我的服务器上有两个子目录,分别是英文和法文网站(子目录分别是en和fr)。当用户在URL栏中输入内容时,我希望他们输入的任何内容都可以添加到en或fr(取决于用户在其计算机上的默认语言)。.htaccess多语言站点
如果他们输入domain.com/test(并且他们的语言设置为英语),我希望它重定向到domain.com/en/test/。我只想要这样做,如果测试不是根目录中的文件夹,目录,文件或ANYTHING。
这里是我的.htaccess代码到目前为止那种作品:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^(.*)$ /en/$1/ [R=301,L]
我的代码的问题,虽然,然而,就是如果用户在类似domain.com/test/进入(WITH斜线),它将无法正常工作,因为我的.htaccess中有另一部分强制在所有内容的末尾加上斜线。如果用户输入domain.com/test.html(并且该域是根目录中的文件),它将不起作用,因为我的.htaccess中的另一部分删除了.html扩展名。
基本上,我需要这个重定向工作在绝对所有的情况下,除了逻辑上不应该的地方。
无论如何,如果你们中的任何人都可以帮助我,我会非常感激。
我不想使用PHP,我只对使用.htaccess文件感兴趣。就像我在OP中所说的那样,我有一部分工作。如果输入的URL末尾没有斜线,则会添加/ en /。但它也会在某些情况下重写URL,例如:如果该文件已位于根文件夹中。 – shootingrubber 2012-04-03 08:03:24
我的原始代码也存在另一个问题。当我真的在en/subdomain中时,它会在URL中添加另一个en /。所以如果我在domain.com/en/test上,然后点击该示例,它将转到domain.com/en/en/example。 – shootingrubber 2012-04-03 08:10:29
谢谢,它帮助我。 – Elkas 2012-12-20 17:11:49