[英]Replace string in url php
在我的网站上,我有2种语言: md
和ru
。
默认语言是: md
。
当我的用户访问站点http://site.ru/news/new-news-article时 ,他使用md
语言显示内容。 但是,如果他访问http://site.ru/ru/news/new-news-article ,则会在lang ru
上看到他的内容,并且如果他访问http://site.ru/md/news/new-news -文章 ,他在md
上显示了内容。
我有3种情况。
当用户位于带有前缀/md/
语言md
上且没有时,需要更改ru上的url。
我的代码:
<link rel="alternate" hreflang="ru" href="https://<?=$_SERVER['HTTP_HOST']?><?=str_replace('/md/', '/ru/', $_SERVER['REQUEST_URI'])?>">
但这仅适用于前缀/md/
,如果用户在url上没有前缀,则无法使用。
这似乎不是处理语言的正确方法,但是下面的代码应该可以工作。 如果字符串中缺少'/md/'
部分,它将无法替换,因此您可以测试是否存在
<?=(substr($_SERVER['REQUEST_URI'], 0, 4) === '/md/' ? str_replace('/md/', '/ru/', $_SERVER['REQUEST_URI']) : '/ru' . $_SERVER['REQUEST_URI'])?>
注意 :有更好的URL语言系统的不同方法。 它不应该真正依赖于请求URI来知道当前页面是什么以及替代页面是什么。 在所有情况下,如果该变量与其浏览器设置不同,则应设置一个变量以了解当前用户首选的语言。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.