【发布时间】:2014-11-27 21:30:45
【问题描述】:
我有一个Joomla 3.3.6(编辑:3.5.)网站,仅分为 3 个级别:
- 四大类(i、ii、iii、iii)
- 每一个都分为一些中间类别(A、B、C、...)
- 最后是文章
- 两种语言(英文、英文)
设置Search Engine Friendly URLs、Use URL rewriting、Adds Suffix to URL和multilanguage support后的URL,应该为:
http://www.example.com/en/bigcatiii/intercatA/articlex.html
但自从 Joomla-Baby-Version 以来,许多其他安装了 Joomla 并要求解决方案的人,我得到了:
http://www.example.com/en/bigcatiii/666-intercatA/articlex.html
其中 666 是一个来自地狱的数字,无意义地表示 类别 ID
现在浏览答案,我找到了这个答案:
Edit “components/com_content/router.php“
(You’ll probably have to re-do this step every time you update Joomla.)
Replace the lines 38 and 290 with:
$advanced = $params->get('sef_advanced_link', 1);
and Replace line 426 with
->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($segment));
嗯,首先,第 426 行已经和原来的一样了。其次,这不能解决问题。它确实适用于:
http://www.example.com/en/bigcatiii/intercatA/articlex.html
但如果您浏览到以下位置,则会出现 404 错误:
http://www.example.com/en/bigcatiii/intercatA.html
另外,我注意到 ID 数字不同。而整个网址是
http://www.example.com/en/bigcatiii/666-intercatA/articlex.html
同类别描述页面是
http://www.example.com/en/bigcatiii/333-intercatA.html
还有另一种听起来更好的解决方案,但也不起作用,基于 .htaccess
RewriteEngine on
RewriteBase /
RewriteRule (\d+)-([^/]*) $2 [R=301,L]
URLs 显示正常,但找不到页面。如果我们可以使用 .htaccess 而不是更改 Joomla 核心来提供解决方案,那就更好了。
不过,如果其他谷歌搜索的建议是有效的,那么更改 Joomla 核心就可以了。
Copy “components/com_content/router.php” to “/templates/your-template/html”
这意味着一旦您将router.php 移至“本地”,您就无需在升级后重做所有内容。 (当然,除非 router.php 被更新,以防你最好再次镜像它。)
感谢您抽出宝贵时间解决这个难题!
参考文献
1- Change/ Remove Article ID in URL?
2- Removing the Article ID number
3- How to remove article id in url?
4- Remove article id from url for joomla 3.0
6- Remove article id from joomla 3 URL
7- Remove article id from joomla 3 URL
已编辑 (2016/May/02):Joomla 最新版本 3.5 的新赏金
【问题讨论】:
-
期待找到有答案的温柔灵魂……
-
在等待了几个星期的答案后,赏金被取消并再次(自动)重新启动。现在只有 4 小时来奖励赏金,我没有带我的 Joomla,也没有时间检查这个答案是否符合要求。因此,关于未经检查的答案的准确性,我决定根据努力的优点来奖励赏金。如果发现是错误的,我会要求作者编辑。如果接下来几天有其他更好的答案,我只能更改接受的答案。非常感谢您的努力,@achedeuzot。
-
我现在正在等待更好的答案。这仍然是一个问题吗?有没有更好、更简单的解决方案?
-
这个答案对于 Joomla 3.4 还可以吗?有更好的解决方案吗?
-
你在 joomla.stackexchange.com 上发布过这个吗?您可能会发现 joomla 专家更有能力做出回应。
标签: php .htaccess joomla joomla3.3 joomla3.4