【问题标题】:How to redirect old joomla articles to main directory and remove language code如何将旧的 joomla 文章重定向到主目录并删除语言代码
【发布时间】:2026-01-10 19:55:02
【问题描述】:

我用新设计的旧网页重建了网站,其网址以 .html 结尾。网页有 3 种语言。域保持不变。

我打算做几件事:

  1. 删除所有网址末尾的 .html。
  2. 将旧新闻文章重定向到主要新闻(2 种语言)目录。
  3. 从主要语言中删除语言代码 /lv。
  4. 重写主要语言的新闻文章 URL,不带 /lv 和 html。

主要产品/联系人/信息我将使用 joomla 内置的重定向系统手动重定向(它们很少),但新闻文章很旧(每种语言大约 500 篇),我想将 /en 和 /ru 重定向到基于语言的新闻类别。

我导出到新网页的主要语言新闻,但现在它们末尾没有语言代码 /lv 和 .html。

旧网址看起来像:http://vervo.lv/ru/news/43-jaunumi/538-2012gad-transporta-joma-butiski-attistjusas-attiecibas-ar-afganistanu.html

我计划将它们重定向到 mysite.lv/ru/novosti、mysite.lv/en/news

是否可以将目录 mysite.lv/ru/news.html 中的所有内容重定向到 mysite.lv/ru/news 并且对于 3 种语言都一样?不重定向其他东西?

您能否建议如何正确执行此操作。我不是程序员。只是高级 joomla 用户。

【问题讨论】:

    标签: redirect joomla seo


    【解决方案1】:

    是的,这可以通过 .htaccess 和 mod_rewrite 实现。 如果它不起作用,请尝试评论或删除 Options +FollowSymLinks 行。

    <IfModule mod_rewrite.c>
        Options +FollowSymLinks
        RewriteEngine on
    
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
    
        # Remove .html
        RewriteRule ^(.*)\.html$ /$1 [NC]
    
        # Strip main language code
        RewriteRule ^lv/(.*) /$1 [NC,R=301,L]
    
        # Redirect old to new RU news
        RewriteRule ^ru/news/43-jaunumi/(.*) /ru/novosti/$1 [NC,R=301,L]
    
        # Redirect old to new EN news
        RewriteRule ^en/news/43-jaunumi/(.*) /en/news/$1 [NC.R=301,L]
    </IfModule>
    

    【讨论】:

    • 不客气!您可以通过单击向上的箭头将此答案标记为有用。
    【解决方案2】:

    一种更简单的非程序员方法可能是使用 SEF 组件(或 joomla 重定向),但这比实施 mrfeelgood 的解决方案需要更长的时间。尝试 sh404 以获得易于使用的解决方案。

    【讨论】: