Mod rewrite 是否使用DNS和/或Mod_重写进行URL屏蔽?

Mod rewrite 是否使用DNS和/或Mod_重写进行URL屏蔽?,mod-rewrite,redirect,dns,Mod Rewrite,Redirect,Dns,我想设置一个系统,以便多个自定义域(如[mydomain.com/params])将重定向到[myapp.com/mydomain.com/params]。我可以仅使用DNS设置来执行此操作吗 我猜这是不可能的,所以将mydomain1.com、mydomain2.com、mydomain3.com等定向到一个IP地址,然后使用Mod_Rewrite将每个请求(无形地)定向到myapp.com/mydomain#com/params,这是更好的解决方案吗?每个重定向的URL都指向从集中托管的CM

我想设置一个系统,以便多个自定义域(如[mydomain.com/params])将重定向到[myapp.com/mydomain.com/params]。我可以仅使用DNS设置来执行此操作吗

我猜这是不可能的,所以将mydomain1.com、mydomain2.com、mydomain3.com等定向到一个IP地址,然后使用Mod_Rewrite将每个请求(无形地)定向到myapp.com/mydomain#com/params,这是更好的解决方案吗?每个重定向的URL都指向从集中托管的CMS加载的内容


如有任何建议、资源和/或解决方案,将不胜感激

不,你不能只使用DNS

如果每个域都可以独立运行(www.domain.com),这将是一个简单的多站点设置,不需要mod_重写,只需要指向每个站点的一组指令

如果您确实需要所描述的设置(),则需要一个将所有域作为别名的
,以及一个基于mod_rewrite的重定向,以将传入请求指向正确的目录。

以下是解决方案:

  • 将所有虚拟域的DNS地址记录设置为相同的IP地址(例如,d1.com、d2.com、d3.com等。所有虚拟域的DNS A记录都设置为一个IP或FQDN)
  • 使用IP作为域,使用一个VirtualHost设置服务器
  • 在VirtualHost的根目录中,创建一个.htaccess来设置mod_重写
  • 在.htaccess中使用以下命令进行mod_重写:
  • 选项+FollowSymLinks 重新启动发动机 重写cond%{HTTP_HOST}(.*)[NC] 重写规则(.*)http://myapp.com/%1/$1[P,R=301,L] %1=请求的域,因此www.d1.com或d1.com
    $1=虚荣URL(d1.com/everyting/else

    此配置不可见地重定向所有请求

    示例:

    d1.com => returns content from => myapp.com/d1.com/ www.d1.com => returns content from => myapp.com/www.d1.com/ d1.com/blog/post/1 => returns content from => myapp.com/d1.com/post/1 d1.com=>从=>myapp.com/d1.com返回内容/ www.d1.com=>从=>myapp.com/www.d1.com返回内容/ d1.com/blog/post/1=>从=>myapp.com/d1.com/post/1返回内容
    感谢您的快速响应。问题是这需要自动可伸缩性——这意味着我的PHP代码需要能够动态创建/销毁域记录(抱歉,我没有说清楚)。我可能会做的是有两个域:myapp.com+myapp2.com然后可以设置每个域#.com DNS记录以不可见地重定向到域#.com.myapp2.com吗?带有myapp2.com的服务器将设置为通配符子域,然后使用Mod#u Rewrite转到myapp.com/domain.com/听起来很有道理吗?我是DNS设置新手,正在尝试学习…我不完全确定你的目标是什么,但听起来太复杂了。你到底有多少台服务器,你需要多少台?把所有的域映射到一台服务器上,让mod_rewrite来整理其余的难道还不够吗?我同意,这似乎太复杂了。我正在使用Rackspace CloudSites来托管中央应用程序(它很便宜,允许按需扩展),不幸的是,它不允许任何高级配置。我正在使用Rackspace CloudServer(近即时部署,非常便宜,可扩展,根访问)来处理更高级的自定义。我以前设置过类似的配置(CloudServer上的通配符子域重定向到CloudSites上的站点)但是DNS问题现在增加了另一层复杂性。对于您所需要的,DNS的事情基本上没有那么难。您可以将一个域映射到一个服务器。Period。其余的由Apache和PHP来处理。您可以设置一个Apache virtualHost,它接收所有传入的请求并将它们转发到myapp.com/mydomain.com/params。这没有问题。这可以解决o设置为可伸缩的,这样您就不必为每个新域设置它。我不知道编程一个解决方案来添加DNS条目是否明智——注册域无论如何都需要手工操作,输入正确的IP地址应该只是过程中的又一步。 d1.com => returns content from => myapp.com/d1.com/ www.d1.com => returns content from => myapp.com/www.d1.com/ d1.com/blog/post/1 => returns content from => myapp.com/d1.com/post/1