新站点的RewriteCond%{QUERY_STRING}

时间:2019-03-04 03:16:47

标签: php apache mod-rewrite joomla3.0

我有一个非常老的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]

希望您能提供任何建议。

1 个答案:

答案 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