我有一个非常老的Joomla-1.0网站,其中包含成千上万的文章,我们最近将其升级为带有SEF的Joomla的当前版本。这是fedora29上的apache-2.4.34。
问题是它不再支持旧的URL格式,因此我试图重写许多旧的URL格式以与网站配合使用。
我最难处理的一个包含查询字符串:
example.com/index.php?option=login
这应该重定向到example.com/register
我的重写规则不起作用,
# /index.php?option=login
RewriteEngine on
RewriteCond %{QUERY_STRING} ^option=login$
RewriteRule ^/index.php$ https://linuxsecurity.com/register [R=301,L,QSD]
此文件放置在文档根目录的.htaccess文件中。我还尝试将其放置在虚拟域配置中的某个部分。
似乎它已被完全忽略。它会报告类似“找不到组件”的错误,就像joomla正在解释该错误一样。
下面还有其他几个RewriteRule条目似乎不起作用。他们只报告404页。如果我在替换链接中输入商品ID,就可以正常工作。
RewriteRule ^/content/view/([^/]+) /index.php?option=com_content&view=article&id=$1 [R=301,L]
希望您能提供任何建议。
答案 0 :(得分:1)
您的条件很好,但是需要调整登录规则。请尝试:
RewriteRule ^content/view/(.*)$ /index.php?option=com_content&view=article&id=$1 [L,R=301]
对于其他内容重定向,这是我以前将Joomla 1.0迁移到Joomla 3.x的方式:
ndgrid
https://www.yellowwebmonkey.com/developer-blog/item/redirect-joomla-1-0-sef-links-for-joomla-3-x