我在我的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
我做错了什么?
答案 0 :(得分:0)
如果我们查看https://www.npmjs.com/package/memcached的文档,我们会发现它与域之后和查询字符串之前的url匹配。你犯的错误是没有逃避字面点(.
匹配每个字符)。此外,问号表示"前一个字符为0或1次",因此php?
表示ph
或php
。
要使用查询字符串重定向网址,您需要求助于mod_rewrite。在主配置文件中启用它,将AllowOverride
(RedirectMatch)设置为至少FileInfo,然后重新启动Apache。然后使用以下代码
RewriteEngine on
RewriteCond %{QUERY_STRING} ^title=([^&]+)$
RewriteRule ^index\.php$ /%1 [R,L,QSD]
在一切按预期工作后,将R
标记更改为R=301
。