将特定页面重定向(mod_rewrite)到新域

时间:2012-03-12 07:44:02

标签: apache mod-rewrite redirect

我想将一组网页重定向到新域名,但到目前为止,我还没有能够实现这一目标。

我想要任何以:

开头的请求

http://www.mydomain.com/wiki/index.php?title=CSV_to_QuickBooks_Converter

重定向到:

www.StatementConverter.com

示例:

http://www.mydomain.com/wiki/index.php?title=CSV_to_QuickBooks_Converter_-_ABCXYZ

应永久重定向到:

http://www.StatementConverter.com

我的.htaccess看起来像这样:

# Prevent viewing of the .htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>

# Cache files for one month
<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

Options +FollowSymLinks 
RewriteEngine on
RewriteBase /

# trying to redirect these pages to new website
RewriteCond %{QUERY_STRING} ^(.*)CSV_to_QuickBooks_Converter$ [NC]
RewriteRule ^.*$ http://www.statementconverter.com/ [R,L]

到目前为止,显示原始页面(我的规则未应用)。

解决方案:

结合我收到的答案,我使用它并且它有效:

RewriteCond %{QUERY_STRING} ^title=CSV_Statement_to_QuickBooks_Converter [NC] 
RewriteRule ^.*$ http://statementconverter.com/? [R,L]

我添加了#34;?&#34;在RewriteRule的末尾,以防止将原始query_string附加到新URL。

3 个答案:

答案 0 :(得分:0)

它可能与^和$字符有关。尝试:

RewriteCond %{QUERY_STRING} \btitle=CSV_to_QuickBooks_Converter [NC]
RewriteRule ^.*$ http://www.statementconverter.com/? [R,L]

在您彻底测试规则并准备上线之前,请勿发送301重定向。 301重定向由浏览器和搜索引擎缓存。虽然您可以在更改重定向规则后清除浏览器缓存,但由于您已更改了重定向网址,因此无法始终告诉搜索引擎返回。

答案 1 :(得分:0)

如果您想要重定向任何开始的请求,请不要将正则表达式锚定在RewriteCond

你有:

# trying to redirect these pages to new website
RewriteCond %{QUERY_STRING} ^(.*)CSV_to_QuickBooks_Converter$ [NC]
                                                            ^ anchored to exact match!
RewriteRule ^.*$ http://www.statementconverter.com/ [R,L]

确切的网址...CSV_to_QuickBooks_Converter是否也没有重定向?

另外,如果您使用浏览器对此进行测试,请执行shift-reload;也许你正在成为克钦的牺牲品。

BTW ^(.*)毫无意义!锚定到开头,但随后多次删除任何字符,允许其余字符串中的任何位置匹配! :)由于您没有使用捕获的文本或将正则表达式运算符应用于带括号的组,因此括号也毫无意义。 (这只是一种习惯,因为将(.*)捕获到$1经常会出现,对吧?哈哈。)

答案 2 :(得分:0)

尝试复制粘贴:

# Prevent viewing of the .htaccess file
<Files .htaccess>
    Order allow,deny
    Deny from all
</Files>

# Cache files for one month
<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf)$">
    Header set Cache-Control "max-age=2592000"
</FilesMatch>

Options +FollowSymLinks 
RewriteEngine on
RewriteBase /

# trying to redirect these pages to new website
RewriteCond %{QUERY_STRING} (^|&)title=CSV_to_QuickBooks_Converter [NC]
RewriteRule (.*) http://www.statementconverter.com/ [R,L]

告诉我它是否有效