2011-08-24 103 views
0

我有一个mod重写的问题,并没有在这里找到任何解决方案。这里的问题是:多语言网站mod重写问题

我有网站用两种语言和MOD URL应该是这个样子:

/eng/contact 
/srp/kontakt 

/eng/news 
/srp/vesti 

/eng/event 
/srp/najava 

矿重写规则不喜欢这个工作,因为我在.htacess情况:

# news 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ news.php?lang=$1&pagename=$2 [NC,L] 

# contact 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ contact.php?lang=$1&pagename=$2 [NC,L] 

# event 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ event.php?lang=$1&pagename=$2 [NC,L] 

我的问题是如何在上面的例子中实现重写页面?

回答

2

我会用:

RewriteRule ^([^/]+)/([^/]+)/*$ index.php?lang=$1&pagename=$2&%{QUERY_STRING} 

,然后从路线的index.php的PHP流通过使用一些简单的news.php/contact.php等的switch-case-包括声明:

switch ($_GET['pagename']) 
{ 
    case 'news': 
     require_once 'news.php'; 
     break; 
    ... 
    ... 
} 

这也将帮助您开发简化.htaccess文件的其他路由相关功能。这也使得像“EN /接触”,但子页面的子页面的本地名字容易查找“PL/KONTAKT”等

我用这种方法几乎我所有的网站(例如http://www.calculla.com/en/ascii2hexhttp://www.calculla.com/pl/ascii2hex)。

+0

谢谢。它'有所帮助,但我有一点点更复杂的情况: www.website.com/eng/blog/category/page/1 www.website.com/srp/blog/category/page/1 这不适用于这种情况。 – Siblja