我目前正在框架上创建一个CMS。我有我的.htaccess文件,它看起来像这样:支持多语言的PHP路由
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z]+)/(.*)$ index.php?url=$1 [PT,L]
</IfModule>
我的问题是,认为:
1)我的页面可以与正常的MVC URL访问: http://example.com/pages/view/ {了,shorttag-的最页}
2)我的网页也与路由访问: http://example.com/p/ {的-shorttag的最页}
我真正需要实现的是,我可以访问它有两种方法:与语言支持 http://example.com/ {的-shorttag的最页} 或者 http://example.com/ {语言}/{在-shorttag的最页}
我的问题是,我不想改变mod_rewrite - 我宁愿在PHP中创建路由,但我找不到解决方案,如何路由到PageController-> view()方法,而没有在上面的示例中有一个静态字母(“p”)条件。
你明白我的问题吗? 你有一些提示,可能会导致我在正确的方向吗?
最后一部分有点复杂 - 为什么我应该有一个映射数据库?这是什么目的?这是我第一次面对语言支持问题,所以它不是我最擅长的。 – 2011-05-02 16:15:28
更新了答案,更详细地解释了关于映射 – usoban 2011-05-02 18:10:26
Usoban:我现在更加注意你的想法。但是我需要提出一个小问题:这是否意味着我必须从数据库中获取所有短标签,并检查这些标签是否在URL中。如果没有,那么我应该创建一个调度程序,该路由指向控制器(如果存在)。如果这些都不存在,则转到错误页面。 这是正确的吗? – 2011-05-02 21:01:08