使用php .htaccess为多语言系统生成seo友好URL

时间:2015-01-19 09:59:56

标签: php .htaccess

我有这个使用php的多语言系统的URL:

http://mydomain/ <-- default language english (en)
http://mydomain/index.php?lang=de
http://mydomain/index.php?lang=fr
http://mydomain/index.php?lang=tr

现在,对于另一个页面,我有这个网址:

http://mydomain/article.php?id=xx <-- show article details
http://mydomain/article.php?list=all  <-- show article archive
http://mydomain/gallery.php?id=xx
http://mydomain/faq.php?id=xx
http://mydomain/faq.php?list=all
http://mydomain/contact.php

现在,我需要使用php和htaccess创建seo友好的URL像这样:

索引:

http://mydomain/  <-- for default
http://mydomain/de/
http://mydomain/fr/

文章即:(domain/lang/id/title.html

http://mydomain/de/articles/22/test.html

页面:

http://mydomain/de/contact.html

for archive:

http://mydomain/de/articles/listall.html

在htaccess中我为文章编写了这段代码:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^articles/([0-9]+)/([A-Za-z0-9-]+)/?.html$ articles.php?id=$1

但这适用于一种语言而非多种语言。如何为多语言系统创建seo友好的URL?!

1 个答案:

答案 0 :(得分:0)

我已经通过这种方式解决了这个问题

<?
$request_uri=explode('/',$_SERVER['REQUEST_URI']);;

$lang_code=$request_uri[1];
$page_code=$request_uri[2];
?>

对于 de / articles / listall.html ,您将获得 $ lang_code = de 和页面代码: $ page_code = articles

然后您可以包含确切的lang文件中的内容:

include('.$page_code.'/content_'.$lang_code.'.php');

内容的真实路径是:

articles/content_de.php
articles/content_en.php