如何使用参数重定向页面?

时间:2011-03-11 16:43:55

标签: .htaccess parameters

http://stackoverflow.com/questions/abcd.html&p=1
http://stackoverflow.com/answers/wxyz.html&p=5
http://stackoverflow.com/database/mnop.html&p=167

http://stackoverflow.com/questions/abcd.html?p=1
http://stackoverflow.com/answers/wxyz.html?p=5
http://stackoverflow.com/database/mnop.html?p=167
http://stackoverflow.com/order/anything.html?mode=new
http://stackoverflow.com/checkout/something.html?mode=old

我想将所有这些网址重定向到:

http://stackoverflow.com/questions/abcd.html
http://stackoverflow.com/answers/wxyz.html
http://stackoverflow.com/database/mnop.html
http://stackoverflow.com/order/anything.html
http://stackoverflow.com/checkout/something.html

请取消我。

3 个答案:

答案 0 :(得分:0)

假设您正在谈论Web服务器,并且该服务器是apache,请查看mod_rewrite。

http://www.elated.com/articles/mod-rewrite-tutorial-for-absolute-beginners/

答案 1 :(得分:0)

试试此代码
但是在前端webserver(nginx e.t.c)中执行此操作的最佳方式

if (preg_match('@^(.+)\?.+@Uis', $_SERVER['REQUEST_URI'], $matches)) {
  header('Location: ' . $matches[1]);
  exit;
}

答案 2 :(得分:0)

您想删除所有网址参数吗?鉴于此问题已标记为.htaccess,我认为这是您要用于重定向的内容。

RewriteRule ^(.*)\?.*$  $1  [L,R=301]

这条规则基本上是说,给我格式为*?*的所有内容,然后忽略问号后面的所有内容。