Joomla 重定向任何以正确的 itemId 开头的 URL

Joomla redirects any URL that starts with a correct itemId

我的 Joomla 网站因 12 月的漏洞被黑。这使得 google 将其标记为危险站点。不好。

我清理了它并向 google 报告我已经清理了。

在编辑我的 htaccess 文件使其直接重定向到它们之后,hackers/spanners 放了一些像“1_junk_shopping_blah.html”这样的文件并在 google 上索引了它们。

修复所有内容后,我注意到 www.example.com/1_junk_shopping_blah.html 重定向到 itemId 为 1 的文章。Joomla 显然删除了前导数字后的所有内容并将其用作有效url。 Google 认为我仍然有垃圾邮件在线并且我的网站仍然被标记为恶意。

我试图将类似的 urls 放在另一个未被黑客攻击的 Joomla 网站上,它以相同的方式重定向,所以这似乎不是黑客攻击导致的问题,但更多的是Joomla 的设置方式。

为什么 Joomla 重定向 url 不正确的内容?我怎样才能解决这个问题?如有必要,我可以编辑 Joomla 的核心,但我需要一些指导,以免弄乱它而不是修复它。或者我可以在我的 .htaccess 中添加一些东西吗?

谢谢!

按照以下步骤检查您网站上的恶意软件

  1. Sitecheck by sucuri.net
  2. 而不是尝试在 Joomla 文件中查找所有未经授权的修改。 在(或之前更好!)从可疑代码中清除站点之后, 更改所有密码,是否用于 FTP, MySQL, SMTP 身份验证 (Site -> Configuration -> Server -> Mail) 和行政部门 面板!

用于从 URL 中删除 ID

  1. https://joomla.stackexchange.com/questions/988/remove-article-id-from-joomla-3-url
  2. Get rid of ID (category and article) from URL (Joomla 3.3 / 3.4 / 3.5)

我建议使用第 3 方扩展程序,因为它更容易防止难看的 URL。

我 "solved" 在我们的模板中使用一些 PHP 代码,我把解决的问题放在引号中,因为它并不完美。它将阻止具有前导数字的有效 urls.. 我们的一个客户实际上有一个以数字 5 开头的文章标题,所以在他们的情况下这是行不通的.. 但是在另一个被标记为恶意的网站上, 它工作得很好,因为他们所有的标题在开头都是按字母顺序排列的。

在受限访问行下方的模板中(所有好的模板都应该有这个)..下面的代码将检测 url 是否以前斜杠开头并后跟一个数字,如果是然后它设置 404 header 并重定向到我知道不存在的实际页面以显示 404 页面..

正如您想象的那样,如果您有一个以“4”开头的自定义 404,这可能会导致无限循环,所以它又是……不完美。我只是写这篇文章来解决他们眼前的问题。

if (preg_match("#^/[0-9]#", $_SERVER['REQUEST_URI'])) {
    header("HTTP/1.0 404 Not Found");
    header("Location: /page-not-found");
}