这个问题分为三个部分。首先是域名问题:为了用域名代替 IP 地址,您需要一些可以将您想要的名称映射到地址的名称服务器。这是在主机级别而不是端口级别,因此域名将包含您可能从中托管的所有端口。如果您正在使用您的家庭 Internet 连接(我怀疑您是因为您谈论的是阻塞端口),那么您需要考虑到您的公共 IP 地址可能会不时更改。您的选择是向您的 ISP 支付(或请求)静态 IP 或使用动态 DNS 服务,该服务可以在您的 IP 地址更改时快速更新其记录。
至于你的端口号。Mod_rewrite 仅处理 URL 的路径部分,以便在内部使用您想要 mod_proxy 的不同端口。带有 mod_proxy 的 Apache Web 服务器将被配置为侦听您想要的公共端口(我假设是端口 80),然后 mod_proxy 将接收传入请求并将它们发送到另一个端口(甚至不同的服务器)上的另一个 Web 服务器。对于外部用户来说,这是无形的。问题是,如果您的 ISP 不允许您在端口 80 上托管您的站点,那么它在逻辑上不会让您从端口 80 代理。要解决这个问题会有点困难。就我个人而言,我会从 Rackspace 或 Linode 等人那里研究虚拟化服务器。您将(以相对较少的钱)在开放的 Internet 上获得完全可配置的服务器,对端口使用和静态 IP 没有限制。
最后,您的问题标题建议的干净 URL。这可能不是您实际问题的一部分,但以防万一,mod_rewrite 是一个智能模块,可以让您映射干净的 URL /cars/Toyota/1997
,并将它们变成更丑陋的请求,例如/cars.php?make=Toyota&year=1997
. 干净的 URL 不仅看起来更好,而且随着网站的发展,它们可以更容易地在后台重新组织 Web 代码。
最后一件事,令我惊讶的是,这个问题已经持续了这么长时间,甚至没有对此发表评论,但是,这个问题真的不适合 StackOverflow。可能是 ServerFault.com。祝你好运!:)