301重定向条QUERY_STRING

时间:2013-01-23 14:32:39

标签: regex .htaccess redirect

我计划很快重新启动一个网站。部分重新启动是Joomla的转换!到Wordpress。

除了一些旧页面,它们将被重定向到一些精确的表达式,我有很多页面,它们将被重定向到新的根页面。

如果我想重定向这样的网址,那么正确的正则表达式是什么:

http://www.somedomain.com/index.php?somevar=123&com_option=somevalue
http://www.somedomain.com/index.php?com_option=someothervalue

所有网址都有共同点:

http://www.somedomain.com/index.php?
+
com_option

如何在.htaccess中使用一行重定向代码重定向所有这些页面?

3 个答案:

答案 0 :(得分:1)

我假设您不需要somevar,只想继续使用com_option

RewriteEngine on
RewriteBase /
RewriteRule index.php(.*)com_option=(.*)$ http://newsite.com/index.php?com_option=$2 [L,R=301]

答案 1 :(得分:0)

你需要做这样的事情:

RedirectMatch 301 (.*)/the/old/domain/and/url/(.*) http://the/new/domain/and/path/$2

答案 2 :(得分:0)

现在,该网站已经上线,我发现我的问题的答案都没有解决。

经过一些试验后我发现了一个错误解决方案:

到目前为止,Google提供了一个实时演示:


1)去google&搜索“site:sqlxpert.de”。

2)点击网址中包含“选项”的链接中的一个。

3)您将被重定向到新页面root - 在这种情况下是同一个域,也是index.php,但是d *** QUERY_STRING已经消失。


我需要一个.htaccess片段,它执行以下操作(用文字表示):

If requested file is 
   INDEX.PHP or INDEX2.PHP 
AND 
   QUERY STRING contains "option"
then 301 REDIRECT to 
   http://www.sqlxpert.de/ 
WITHOUT any QUERY STRING

解决方案:

RewriteCond %{QUERY_STRING} option
RewriteRule ^index\.php http://www.sqlxpert.de/$1? [L,R=301]
RewriteRule ^index2\.php http://www.sqlxpert.de/$1? [L,R=301]