使用vhost和url重写时,请求的URL如何显示?

时间:2012-08-22 08:03:39

标签: url mod-rewrite url-rewriting request vhosts

我有一个小系统(Coldfusion8, MySQL 5.0.88),它允许用户根据他们的偏好对主网站进行换肤。

这样做很好,除了URL仍然像这样丑陋:

  www.my_site.com/index.cfm?user=123456789

我现在希望用户显示自己的网址并已阅读vhost(我正在运行Apache),了解如何执行此操作。我正在根据URL中提供的ID更改外观。如果我现在设置我的系统显示:

  wwww.users_selected_url.com

与上述相比,我无法检查URL ID。我在整个应用程序中使用此ID检查以在使用Coldfusion呈现页面时自定义页面布局。

问题:
URL何时重新格式化?是否仍然会使用原始URL请求正在加载的页面,因此Coldfusion可以执行此操作,并且只有显示给用户的页面才会使用其自定义URL?如果我也使用URL重写怎么样?

感谢您提供一些信息!

1 个答案:

答案 0 :(得分:1)

您需要设置vhost才能接受wwww.users_selected_url.com主机的请求,并且DNS需要指向您的服务器。在vhost配置中,您可以使用重写模块将URL更改为/index.cfm?user=123456789,并且在URI切换到冷融合之前进行此重写。您需要将其添加到您的vhost配置:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?users_selected_url.com$ [NC]
RewriteRule ^/$ http://www.my_site.com/index.cfm?user=123456789 [L,P]

当有人在浏览器中访问http://www.my_site.com/index.cfm?user=123456789时,会使用mod_proxy将请求代理到http://www.users_selected_url.com/