我在使用joomla 2.5和Meta robots标签时遇到了这个问题。
基本上joomla中有这个黑洞,无论URL是什么,只要你有一个有效的文章ID就会生成一个页面。
示例:
http://www.clet.edu.au/dasfjahsd/sajfhas/61-afssfas
61是一个有效的ID,因此它将显示一个页面,但它是一个错误的页面呈现。
这将是该文章的正确呈现
http://www.clet.edu.au/online-study/whs-courses/diploma-of-work-health-and-safety
我想到的是,我们的网站上没有任何带有数字的网址,所以几乎任何有数字的网址就错了...所以我已经完成了这个代码:< / p>
$(document).ready(function(){
var pathname = $(location).attr('href');
var NO_NUMB = new RegExp("[0-9]");
if (NO_NUMB.test(pathname)) {
$('meta[name=robots]').attr("content", "noindex, nofollow");
}
});
它做什么,它会检查网址上的数字,并将元机器人更改为noindex nofollow。这部分工作,它改变了元机器人,但只在浏览器DOM上进行,而不是直接在源文件上。
因此,当您继续浏览器并单击inspect元素时,您可以选择noindex nofollow标记,但是当您单击查看源时,您将看到索引跟随...
根据谷歌支持,谷歌查看页面源而不是浏览器上的DOM ...所以它永远不会看到noindex nofollow标签......
我想知道有没有办法在PHP上这样做,所以它改变了源代码上的meta关键字而不是浏览器DOM?
欢呼声, 担
答案 0 :(得分:2)
试试这个,
而不是从Javascript更改元数据,而不是从PHP尝试。 Joomla有一个文档类用于此目的。
$document = JFactory::getDocument();
$document->setMetaData('keywords', "keyword1,keyword2, etc.");
$document->setMetaData('robots', "index,follow");
$document->setMetaData('author', "Jobin Jose");
$document->setMetaData('title', "Your meta title");
$document->setDescription( "Your meta description" );
$document->setTitle("This is my page title");
有关详细信息,请参阅文章How to set meta info of Joomla page
希望它的帮助..