【发布时间】:2019-03-04 03:16:47
【问题描述】:
我有一个非常古老的 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]
如果您能提供任何建议,我将不胜感激。
【问题讨论】:
-
去掉起始斜线,相对于当前目录写入。
标签: php apache mod-rewrite joomla3.0