htaccess使用参数重定向url

时间:2014-03-21 19:00:24

标签: apache .htaccess redirect http-status-code-301

我有数百个这样的链接:

http://www.domain.com/index.php?tag=value

我想将所有链接重定向到

http://www.domain.com/value/

示例:

Link1 http://www.domain.com/index.php?tag=LW1fdX49tR 重定向到:http://www.domain.com/LW1fdX49tR/

Link2 http://www.domain.com/index.php?tag=A3kh0QLIrc 重定向到:http://www.domain.com/A3kh0QLIrc/

Link3 http://www.domain.com/index.php?tag=vXwNR4U9qY 重定向到:http://www.domain.com/vXwNR4U9qY/

我该怎么做? 谢谢!

1 个答案:

答案 0 :(得分:5)

除了重定向请求之外,您可能还想确保新网址确实有效。您需要外部重定向和内部重写。在下面的示例中,我使用THE_REQUEST技巧仅触发规则,如果它是实际的请求URL,而不是在内部重写。需要防止无限循环。

#External redirect with THE_REQUEST trick; change R to R=301 when everything works correctly
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /index\.php\?tag=(.*)\ HTTP
RewriteRule ^ /%2? [R,L]

#Internal rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?tag=$1 [L]