0

众所周知,joomla 在规范问题方面存在一些相当大的问题,并不是真正解决这个问题的方法......我编写了一个代码来检查 url 并添加 rel= 规范链接......

代码是这样的:

<?php 
$canonicalLink =  "http://".$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]; 
if ($canonicalLink == 'http://domain.edu.au/index.php')
echo '<link rel="canonical" href="http://domain.edu.au/">';
if ($canonicalLink == 'http://domain.edu.au/?view=featured')
echo '<link rel="canonical" href="http://domain.edu.au/">';
?>

这行得通,但我的问题是:

我的网站上有太多页面,这个 if 语句会非常庞大

有没有办法将其转换为函数?那将从列表中读取网址?

就像是:

list:

http://domain.edu.au/?view=featured | http://domain.edu.au/
http://domain.edu.au/?view=contact | http://domain.edu.au/contact-us
http://domain.edu.au/?view=about | http://domain.edu.au/about-us
http://domain.edu.au/category-a/subcategory-a | http://domain.edu.au/category-main/subcategory-main

功能:

function (a | b){
if (a)
echo 'b'
}

并使其在加载时的所有列表中循环运行...

这有意义吗?还是我完全离开这里?

干杯,丹

4

1 回答 1

0

你可以这样做:

//populate $list with the end of the actual uri as the key
//and what you want the actual uri to be as the value
$list = array(
  '/index.php'=>'',
  '/?view=featured'=>'',
  '/?view=contact'=>'contact-us',
  '/?view=about'=>'about-us',
  '/category-a/subcategory-a'=>'category-main/subcategory-main'
);

echo '<link rel="canonical" href="http://domain.edu.au/'.$list[$_SERVER["REQUEST_URI"]].'">';

这使得你不必做任何if逻辑。它成为一个直接查找值。

于 2013-02-28T06:02:29.030 回答