使用.htaccess添加语言目录

时间:2012-02-14 09:15:15

标签: .htaccess codeigniter

您好Stackoverflow社区,

我一直在阅读其他大多数.htaccess问题,并在我的.htaccess文件上尝试了不同的解决方案但没有成功。

这就是事情:我有一个网站(基于CodeIgniter)已经有一个很好的SEO定位。现在,客户希望它翻译成另一种语言,但我不想丢失那个搜索引擎优化,所以我想把http://www.domain.com/contactUs这样的网址重定向到http://www.domain.com/en/contactUs,是(en)当前定位的语言。 CI会像往常一样处理其他语言而没有问题。我目前正在对localhost进行测试,因此以下规则将只有“domain”而不是“domain.com”。

我尝试过这些重写规则:

RewriteEngine on
Options +FollowSymlinks

RewriteCond ^(.*)/domain/(.*) !^/en/
RewriteRule ^(.*)/domain/(.*)$ $1/domain/en/$2

我希望RewriteCond过滤使用新语言的URL,以便不执行RewriteRule。我究竟做错了什么?

3 个答案:

答案 0 :(得分:0)

这样做:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !^/en/ [NC]
RewriteRule ^(.*)$ /en/$1 [L]

答案 1 :(得分:0)

您应该将所有文本放在唯一的语言文件中,然后加载它们:

$this->config->set_item('language',"your_language");
$this->lang->load('default', "your_language");

要写出内容,请使用:

$this->lang->line('message_id');

更多信息:

http://codeigniter.com/user_guide/libraries/language.html

这应该比创建重复的网站更有效,同时仍然是SEO友好。事实上,它应该更加SEO友好。

答案 2 :(得分:0)

RewriteCond $2 !^en/
RewriteRule ^(.*)/domain/(.*)$ $1/domain/en/$2