使用RedirectMatch重定向带有查询字符串的URL

时间:2018-04-17 04:06:35

标签: regex apache .htaccess

我尝试使用RedirectMatch重定向带有SEO插件遗留问号的网址。我们的vbulletin 4.2.5论坛使用Dragonbyte SEO来重写URL,但是一些外部站点仍然链接到旧URL。我们还有一个奇怪的问题,一些URL会附加一个等号,这也会破坏一些东西。我一直在尝试为这些问题创建重定向规则,但我尝试的所有内容似乎都会导致错误或根本无法正常工作。我真的很感激我能得到的任何帮助。

示例网址: http://subdomain.example.com/content/?123-My-Article-Title

所需的重定向: http://subdomain.example.com/content/123-My-Article-Title.html

Live Server:LiteSpeed 测试服务器:Apache 2.4.27

示例.htaccess尝试:

RewriteRule ^(\/content\/)\?([0-9]*[-a-z,A-Z]*)$ http://subdomain.example.com/$1$2.html [R=302, L]

RedirectMatch 302 /content/?([0-9]*[a-zA-Z-]*) http://subdomain.example.com/$1.html

1 个答案:

答案 0 :(得分:0)

您无法使用 <Switch> <Route exact path='/' component={CompOne} /> <Route path='/:name/:id?' render={(routeProps) => { console.log(routeProps); return <Details {...routeProps} />; }} /> </Switch> 指令重定向查询字符串。您需要使用RedirectMatch%{QUERY_STRING}变量匹配。

mod-rewrite