.htaccess重定向基于uri中的语言

时间:2013-11-12 13:35:43

标签: .htaccess

我的项目有MVC结构:example.com/class/function/param

如果项目位于根文件夹或子文件夹中,我会http://example.com/http://example.com/project/

我的目标是重定向:

http://example.com/ -> http://example.com/en/ 
http://example.com/project/ -> http://example.com/project/en/

http://example.com/**en**/应替换为等效的语言(例如:/ de /,/ ru /,...)所以在伪代码中:

{base_url}/{lang}/{class}/{function}/{param}

http://example.com 定义为相对路径!

然后我可以选择url的第一段(/ en /)并用我的函数更改语言。

我当前的 .htaccess 文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php [L]
</IfModule>

# Prevent file browsing
Options -Indexes

修改

考虑Router.php类来处理URL重写...

1 个答案:

答案 0 :(得分:0)

您无法直接使用htaccess进行此操作。您将能够获得用户语言,但不能使用此信息来完全按照您的意愿构建URL(如果在htaccess中您获得fr_FR,则您将无法仅在您的URL中添加fr)。 / p>

您必须使用PHP重写URL。见https://stackoverflow.com/a/16389034/2806497