0

我需要创建指向我的网站的多语言链接,我正在考虑使用 str_replace,但我不确定这是否是正确的选择。也许 REGEX 可以解决问题...但是我对正则表达式不太流利...

我的网址是这样的:localhost/project/public/LANG/event/id/

LANG 可以是:

/en/ 
/fi/
/sv/

其他网址相同,只是网址的 /LANG/ 部分发生了变化。我试图用这个改变网址:

<?php
$search = array("/sv/", "/fi/");
$replace = array("/en/");
$url_en = str_replace($search, $replace, $url);
echo $url_en;
?>

然而,这并没有给我正确的 url,它用 sv 或 fi 替换了所有东西。我认为正确的解决方案是

4

2 回答 2

0

使用 .htaccess 文件翻译友好的网址

在您的网站根目录中创建一个 .htaccess 文件

您的链接看起来像 domain/a/b/c/d

本地主机/项目/公共/LANG/事件/id/

这被翻译为 domain/index.php?action=project&saction=public&language=LANG&taction=event&tid=id

他们被这个文件翻译成 domain/index.php?action=a&id=b&saction=c&sid=d

以下是我的文件之一,例如;祝你好运

Options +SymLinksIfOwnerMatch

RewriteEngine on


RewriteRule ^([a-zA-Z-]+)/(producator)-([0-9]+)$ index.php?action=$1&producator=$3 [NC,L]
RewriteRule ^([a-zA-Z-]+)-([0-9]+)/(producator)-([0-9]+)$ index.php?action=$1&id=$2&producator=$4 [NC,L]

RewriteRule ^([a-zA-Z-]+)/(producatorx)-([0-9]+)$ index.php?action=$1&producatorx=$3 [NC,L]
RewriteRule ^([a-zA-Z-]+)-([0-9]+)/(producatorx)-([0-9]+)$ index.php?action=$1&id=$2&producatorx=$4 [NC,L]

RewriteRule ^([a-zA-Z-]+)$ index.php?action=$1 [NC,L]

RewriteRule ^([a-zA-Z-]+)-([0-9]+)$ index.php?action=$1&id=$2 [NC,L]

RewriteRule ^(tag)/([a-z0-9]+)$ index.php?action=tag&tag=$2 [NC,L]

RewriteRule ^([a-zA-Z-]+)-([0-9]+)/(update)-([a-z0-9]+)$ index.php?action=$1&id=$2&saction=update&code=$4 [NC,L]
RewriteRule ^([a-zA-Z-]+)-([0-9]+)/(delete)-([a-z0-9]+)$ index.php?action=$1&id=$2&saction=delete&code=$4 [NC,L]

RewriteRule ^([a-zA-Z-]+)-([0-9]+)/([a-zA-Z-]+)-([0-9]+)$ index.php?action=$1&id=$2&saction=$3&sid=$4 [NC,L]

RewriteRule ^(.*)-([0-9]+).html$ index.php?action=details&id=$2 [NC,L]
于 2012-08-16T08:59:14.680 回答
-3
preg_replace('|(localhost/project/public/)..|', '\1EN', $url);
于 2012-08-16T08:36:07.203 回答