Mediawiki上的Redirectmatch 301

时间:2015-05-10 13:47:28

标签: apache .htaccess redirect url-redirection

我在我的wiki网站上使用Mediawiki脚本。我现在使用site.com/Page链接结构。

之前我使用过这些链接结构: site.com/index.php/Page site.com/index.php?title=Page

我想将旧链接重定向到新闻。

我为“/index.php/Page”做了“/ Page”。但我不能将“/index.php?title=Page”改为“/ Page”。

这是我的.htaccess文件。你的选择是什么?

RewriteEngine On
RewriteBase /
RedirectMatch 301 /index.php/(.*) http://viki.gameofthronestr.com/$1
RedirectMatch 301 /index.php?title=(.*) http://viki.gameofthronestr.com/$1

我也试过4. line:

RedirectMatch 301 /index.php\?title\=(.*) http://viki.gameofthronestr.com/$1

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果我们查看https://www.npmjs.com/package/memcached的文档,我们会发现它与域之后和查询字符串之前的url匹配。你犯的错误是没有逃避字面点(.匹配每个字符)。此外,问号表示"前一个字符为0或1次",因此php?表示phphp

要使用查询字符串重定向网址,您需要求助于mod_rewrite。在主配置文件中启用它,将AllowOverrideRedirectMatch)设置为至少FileInfo,然后重新启动Apache。然后使用以下代码

RewriteEngine on

RewriteCond %{QUERY_STRING} ^title=([^&]+)$
RewriteRule ^index\.php$ /%1 [R,L,QSD]

在一切按预期工作后,将R标记更改为R=301