htaccess:重写并重定向301

时间:2016-11-18 09:36:23

标签: apache .htaccess

我通过.htaccess重写了一个由此模式中的查询字符串生成的动态网址类别:

RewriteEngine On
RewriteRule ^id1-([^-]*)-id2-([^-]*)$ /page.php?id1=$1&id=$2 [L]

现在我的重写工作正常,例如,以下网址驱动到同一页面:

http://www.mysite.it/id1-01234-id2-56789
http://www.mysite.it/page.php?id1=01234&id2=56789

但是现在我想为所有动态网址重定向301,从第二种类型到第一种类型。例如:

http://www.mysite.it/page.php?id1=01234&id2=56789 

http://www.mysite.it/id1-01234-id2-56789

以下方式无效:

RewriteEngine On
RewriteRule ^id1-([^-]*)-id2-([^-]*)$ /page.php?id1=$1&id=$2 [L]
RewriteCond %{QUERY_STRING} (^|&)id1=$1($|&)
RewriteCond %{QUERY_STRING} (^|&)id2=$2($|&)
RewriteRule ^page\.php$ /id1-id2? [L,R=301]

错误在哪里?

你可以帮我吗?

1 个答案:

答案 0 :(得分:1)

RewriteEngine On
RewriteCond %{THE_REQUEST} \s/page.php
RewriteCond %{THE_REQUEST} \?id1=(\w+)&id2=(\w+)\s
RewriteRule ^page.php /id1-%1-id2-%2? [NC,R=301,L]

RewriteRule ^id1-([^-]*)-id2-([^-]*)$ /page.php?id1=$1&id2=$2 [L]