HTACCESS RewriteRule更改URL确定,但提供404页面

时间:2012-11-22 14:30:31

标签: .htaccess mod-rewrite joomla2.5

我正在使用Joomla构建一个新网站,我在全局配置中选择了“搜索引擎友好网址”和“使用网址重写”,这样可以提供良好的SEF网址但不太完美!

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

  

example.com/10-category/5-article

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

example.com/category/article

我在我的htaccess文件中创建了Rewrite Rule,如下所示:

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错误页面。

1 个答案:

答案 0 :(得分:1)

这是一个盲目的猜测,Joomla可能需要这些数字才能知道要提供哪些内容。它不能仅仅根据类别或文章的名称来判断(实际上在大多数情况下你甚至可以将它排除在外),但这是重要的数字。

因此,当您重写没有数字的URL时,您正在请求Joomla不知道如何处理的页面,并且它将为您提供404.唯一的解决方案是编写插件或其他内容将类别和文章的名称映射到相应的ID,但这并不容易。

关于搜索引擎优化,我不认为网址中的数字会产生很大的负面影响。如果您网站的其余部分的搜索引擎优化是好的,那么这无关紧要。