2010-07-29 29 views
1

使用mod_rewrite到redirct,我怎么会拿网址像这样:使用mod_rewrite使用不同的GET变量

www.example.com/?foo=hello

www.example.com/?foo=world

,并将其重定向至以下网址:

www.example.com/hello/

www.example.com/world/

谢谢

回答

3

你应该做的与此相反。你可以使你网站上的所有URL链接看起来像'漂亮'版本(但不要改变任何其他功能),然后你使用mod_rewrite来制作模式,匹配对'漂亮'URL的请求并显示相应的'丑陋'网址。一个非常简单的例子,你的链接...

RewriteEngine On 
RewriteEngine ^([^/]+)/?$ /index.php?foo=$1 

更新:

您可以使用相反的方向重定向...

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^foo=(.*) 
RewriteRule ^index.php$ /%1/ [R=302] 

一旦你高兴它的工作,您可以将302更改为301以获得永久性重定向。如果你将这个与上面的例子结合起来,虽然你会得到一个500内部服务器错误,因为你将会创建一个重定向循环。

+1

感谢您的回复。 我明白你在说什么,但我试图重定向一个以前使用旧的丑陋网址的用户到一个新的漂亮的网址。 – Micah 2010-08-02 12:54:03

+1

我更新了我的答案,并提供了有关如何在该方向前进的信息。 – 2010-08-03 08:36:35