我有两个使用WordPress的网站:www.exemple.com
(fr-FR)和ca.exemple.com/fr
(fr-CA)
为避免在Google上出现重复内容,我必须动态更改此元素:
<link rel="alternate" hreflang="fr-CA" href="ca.exemple.com/fr/shop">
所以当我在header.php
www.exemple.com/shop
时
<link rel="alternate" hreflang="fr-CA" href="<?php echo str_replace("//", "//ca.", get_site_url() . $_SERVER['REQUEST_URI']); ?>" />
它返回:
<link rel="alternate" hreflang="pl" href="ca.exemple.com/shop">
如何在/fr/
和.com
之间添加/shop/
?
编辑:解决方案
我已经制作了一个特殊代码,用于验证代码是否存在于另一个页面上,因此我们没有任何404错误,这里是:
<?php
$alt_url = str_replace( "ca.exemple.com/fr/fr", "www.exemple.com" , get_site_url() . $_SERVER['REQUEST_URI']);
$currentz = str_replace( "ca.exemple.com/fr/fr" , "ca.exemple.com/fr" , get_site_url() . $_SERVER['REQUEST_URI']);
$file_headers = @get_headers($alt_url);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
}
else {
echo "<link rel=\"alternate\" hreflang=\"fr-CA\" href=\"$currentz\" />";
echo "\n";
echo "<link rel=\"alternate\" hreflang=\"fr-FR\" href=\"$alt_url\" />";
}
?>
答案 0 :(得分:0)
试试这个
$url = 'http://www.example.com/shop';
$path = parse_url($url, PHP_URL_PATH);
echo str_replace($path,'/fr'.$path, $url); // http://example.com/fr/shop
答案 1 :(得分:0)
只需添加串联中的字符串
即可<?php echo str_replace("//",
"//ca.", get_site_url() .'/fr'. $_SERVER['REQUEST_URI']);
我可能不会这样做。但那是快速的答案。
没有必要在整个字符串上运行str_replace。
echo str_replace('//'.'//ca.',get_site_url()).'/fr'/. $_SERVER['REQUEST_URI'];
此外,还有parsing urls
的功能答案 2 :(得分:0)
您可以在现有字符串替换后添加另一个字符串替换。 例如:
<?php
$url = str_replace("//", "//ca.", "http://www.yahoo.com/shop");
$url = str_replace(".com", ".com/fr", $url);
echo $url;
?>
会导致:
http://ca.www.yahoo.com/fr/shop