我目前正在框架上創建一個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