.htaccess 多语言网站修改重写问题
我有一个修改重写的问题,并没有找到任何解决方案在这里。问题是: 我有两种语言的网站,mod URL应该是这样的:.htaccess 多语言网站修改重写问题,.htaccess,mod-rewrite,multilingual,seo,.htaccess,Mod Rewrite,Multilingual,Seo,我有一个修改重写的问题,并没有找到任何解决方案在这里。问题是: 我有两种语言的网站,mod URL应该是这样的: /eng/contact /srp/kontakt /eng/news /srp/vesti /eng/event /srp/najava # news RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ news.php?lang=$1&pagename=$2 [NC,L] # contact RewriteRule
/eng/contact
/srp/kontakt
/eng/news
/srp/vesti
/eng/event
/srp/najava
# 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]
我的重写规则不起作用,因为我遇到了如下.htaccess情况:
/eng/contact
/srp/kontakt
/eng/news
/srp/vesti
/eng/event
/srp/najava
# 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]
我的问题是如何实现上述示例中页面的重写?我将使用:
RewriteRule ^([^/]+)/([^/]+)/*$ index.php?lang=$1&pagename=$2&%{QUERY_STRING}
然后使用一些简单的switch case include语句将PHP流从index.PHP路由到news.PHP/contact.PHP等:
switch ($_GET['pagename'])
{
case 'news':
require_once 'news.php';
break;
...
...
}
这还将帮助您开发其他路由相关功能,简化.htaccess文件。这还允许轻松查找子页面的本机子页面名称,如“en/contact”但“pl/kontakt”等
我几乎在我所有的网站上都使用这种方法(例如和)。谢谢。这很有帮助,但我遇到了一个更复杂的情况:www.website.com/eng/blog/category/page/1 www.website.com/srp/blog/category/page/1,这种情况不适用。