.htaccess使用GET参数重定向

时间:2015-12-12 14:10:56

标签: php apache .htaccess mod-rewrite redirect

我已经检查了很多与.htaccess重定向有关的答案,但是我无法详细说明我的问题:

我有一个旧网站,其博客条目如下:

http://ellrohir.mzf.cz/index.php?page=blog&id=77

现在我还有一个新网站,其中包含“精美网址”,可以使用以下网址找到博客条目:

http://alois-seckar.cz/politics-blog/77

我想“关闭”旧网页并将旧链接重定向到新网站。如何捕获旧网址并将其转移到新网址?我仍然无法找到必要的.htaccess代码:(

3 个答案:

答案 0 :(得分:2)

试试这个:

RewriteEngine on


RewriteCond %{QUERY_STRING} ^page=([^&]+)&id=([^&]+)$ [NC]
RewriteRule ^index\.php$ http://alois-seckar.cz/politics-%1/%2? [NC,L,R]

最后的空问号对于丢弃目标网址中的原始查询字符串非常重要。

%n是RewriteCond中正则表达式的一部分,它是([和] +)之间匹配的部分。

此规则将重定向

example.com/index.php?page=foo&id=bar

example2.com/politics-foo/bar

答案 1 :(得分:0)

您可以使用.htaccess

重定向到其他网站
RewriteEngine on
RewriteRule ^/index.php?page=blog&id=(.*)?$ http://example.com /politics-blog/$1 [R=301,L]

答案 2 :(得分:-2)

我不擅长.htaccess,所以这是我的php解决方案:

<强>的index.php

<?php
$header="location: http://alois-seckar.cz";
if((isset($_GET["page"]))&&(isset($_GET["id"])))
{
    $header.="/".$_GET["page"]."/".$GET["id"];
}
header($header);
?>