htaccess重定向搜索特定的查询字符串并删除

时间:2013-07-18 02:05:34

标签: .htaccess redirect query-string

出于搜索引擎优化的原因,我想将404页面的列表重定向到www.domain.com/news/。

我使用以下代码成功地重定向了www.domain.com/news/?p=1234和www.domain.com/news/?p=111&replytocom=333等网页:

RewriteCond %{QUERY_STRING} ^(p=1234|p=111)($|&) 
RewriteRule ^news/$ domain.com/news/ [L,R=301]

但是其中一些页面有很奇怪的查询字符串,我不知道如何查询它们并在htaccess中删除它们。

www.domain.com/news/?p=12345;0;0;0;latestnews
www.domain.com/news/?feed=rss&p=123
www.domain.com/news/?p=123%3B0%3Blatestnews

我真的不想将所有url wth /?p =重定向到/ news /,因为其中一些会重定向到某个特定的页面。

提前多多感谢。


好的,我想出了这两个

的解决方案
www.domain.com/news/?p=12345;0;0;0;latestnews
www.domain.com/news/?p=123%3B0%3Blatestnews

我只是添加p = 123; 0; 0; 0latestnews条件,因为代码写得好像

RewriteCond %{QUERY_STRING} ^(p=1234|p=111|p=123;0;0;0latestnews)($|&) 

他们正在工作!

仍在寻找处理方式

www.domain.com/news/?feed=rss&p=123

如果有人有任何解决方案,请告诉我!非常感谢!


我找到了feed = rss& p = 123的答案,很抱歉我忘记了我的网站是wordpress网站。

因此,浏览器似乎无法将此页面识别为404或甚至是我们服务器下的页面。该页面看起来像一个空的RSS页面。 所以我决定禁用RSS因为我没有真正使用它,然后通过PHP进行重定向。 这是我的functions.php中的代码

function wp_disable_feed() { 
    header('Location: http://www.mysite.com/news/');
    //wp_die( __('Sorry, no feeds available, return to <a href="'. get_bloginfo('url') .'">homepage</a>') );
}
add_action('do_feed', 'wp_disable_feed', 1);
add_action('do_feed_rdf', 'wp_disable_feed', 1);
add_action('do_feed_rss', 'wp_disable_feed', 1);
add_action('do_feed_rss2', 'wp_disable_feed', 1);
add_action('do_feed_atom', 'wp_disable_feed', 1);

2 个答案:

答案 0 :(得分:0)

为什么你不试试这个:

RewriteCond %{QUERY_STRING} ^(p=1234|p=111|p=123;0;0;0latestnews|feed=rss&p=123)
RewriteRule ^news/$ http://domain.com/news/ [R=301]

答案 1 :(得分:0)

好的,我想出了这两个

的解决方案
www.domain.com/news/?p=12345;0;0;0;latestnews
www.domain.com/news/?p=123%3B0%3Blatestnews

我只是添加p = 123; 0; 0; 0latestnews条件,因为代码写得好像

RewriteCond %{QUERY_STRING} ^(p=1234|p=111|p=123;0;0;0latestnews)($|&) 

他们正在工作!


我找到了feed = rss&amp; p = 123的答案,很遗憾我忘记了我的网站是wordpress网站。

因此,浏览器似乎无法将此页面识别为404或甚至是我们服务器下的页面。该页面看起来像一个空的RSS页面。所以我决定禁用RSS因为我没有真正使用它,然后通过PHP进行重定向。这是我的functions.php中的代码

function wp_disable_feed() { 
    header('Location: http://www.mysite.com/news/');
    //wp_die( __('Sorry, no feeds available, return to <a href="'. get_bloginfo('url') .'">homepage</a>') );
}
add_action('do_feed', 'wp_disable_feed', 1);
add_action('do_feed_rdf', 'wp_disable_feed', 1);
add_action('do_feed_rss', 'wp_disable_feed', 1);
add_action('do_feed_rss2', 'wp_disable_feed', 1);
add_action('do_feed_atom', 'wp_disable_feed', 1);