使用.htaccess文件的动态URL

时间:2011-04-02 09:17:48

标签: .htaccess dynamic-url

我想转换像

这样的网址
http://mysite.com/search/search_mgmt.php?CategoryID=1

类似

http://mysite.com/search/my-seo-friendly-url

我启用了mod_rewrite。

1 个答案:

答案 0 :(得分:5)

你想要达到什么目的?如果某些人使用search/search_mgmt.php?CategoryID=1访问您的网站,并且您希望将其转换为search/my-seo-friendly-url,则必须将流量重定向到其他网址:

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^mysite.com/search/search_mgmt.php?CategoryID=1$ http://mysite.com/search/my-seo-friendly-url [R=301,L]

使用此规则,服务器将向客户端代码301 Moved Permanently发送Location:标头设置为新URL。您可以将301代码更改为302(找到):[R=302,L]。 (注意:在这种情况下,客户端会向服务器发送两个请求以获取内容。)

如果您不添加此结果说明符,那么您的服务器将只返回结果,就像使用重写的URL访问它一样。所以我猜你实际上希望用户看到你的my-seo-friendly-url而在服务器上它会被search_mgmt.php?CategoryID=1处理。你可以这样做:

RewriteRule ^mysite.com/search/my-seo-friendly-url$ http://mysite.com/search/search_mgmt.php?CategoryID=1