我计划很快重新启动一个网站。部分重新启动是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中使用一行重定向代码重定向所有这些页面?
答案 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]