3

我正在使用 Joomla 构建一个新站点,并且在全局配置中选择了“搜索引擎友好 URL”和“使用 URL 重写”,这提供了良好的 SEF URL,但不是很完美!

如果指向页面的链接没有与之关联的菜单项,则 URL 将如下所示:

example.com/10-category/5-article

我想使用htaccess删除数字和连字符,所以它看起来像:

example.com/category/article

我在我的 htaccess 文件中创建了重写规则,如下所示:

RewriteRule ^([0-9]+)-(.*)/([0-9]+)-(.*)$ /$1$2/$3$4 [R=301,L]
RewriteRule ^([0-9]+)(.*)/([0-9]+)(.*)$ /$2/$4 [R=301,L]

浏览器地址栏现在显示我想要的 URL,example.com/category/article,但页面显示 404 错误!

它与 Joomla SEF 有关吗?

我究竟做错了什么?

*更新* 删除连字符的第一个 RewriteRule 只能自行正常工作,当两个 RewriteRule 都处于活动状态时,我只会收到 404 错误页面。

4

1 回答 1

1

这是一个盲目的猜测,Joomla 可能需要这些数字来知道要提供哪些内容。它不能仅仅通过类别或文章的名称来判断(事实上在大多数情况下,您甚至可以将其省略),但重要的是数字。

因此,当您在没有数字的情况下重写 URL 时,您正在请求 Joomla 不知道如何处理的页面,它会给您一个 404。唯一的解决方案是编写一个插件或映射名称的东西将类别和文章添加到相应的 ID,但这并不容易。

关于 SEO,我不认为 url 中的数字有那么大的负面影响。如果您网站的其余部分 SEO 都很好,那么这无关紧要。

于 2012-11-22T14:33:55.633 回答