2012-03-19 60 views
2

我正在使用PHP上的Zend Framework构建一个SaaS应用程序。这是项目的基本信息。其SaaS模式下的项目管理系统。当用户注册的网站上,他们将获得一个域名,如格式:在Zend框架上构建一个SaaS应用程序

user_name.pms.com

USER_NAME - 所选择的用户名时,在项目管理系统(PMS)

注册用户

pms.com - 是主要的SaaS服务器。

目前我们在服务器上提供子域。对于大公司来说,它看起来不太好,他们可能更喜欢自己的域名,而不是默认域名。因此,有可能是:

user_name.pms.com [总是存在]

user1.com [自定义或用户的独立域名]这个自定义域需要链接到默认用户的URL。

完整的网站正在计划使用Zend框架进行开发。

在Zend框架,我们正在为它工作的根文件夹具有以下的.htaccess并低于:

SetEnv APPLICATION_ENV development 
RewriteEngine On 
RewriteRule .* index.php 

这里是我的问题:

  1. 我真的需要创建子所有用户一旦在网站上注册了域名就像个人资料网址?

  2. 如果需要创建Sub Domains,PHP可以检查所选的子域是否存在,并且可以从脚本本身创建Sub Domains?

  3. 如果不需要子域,我们可以在Zend安装中使用HTAccess实现相同的目标吗?

  4. 你能提供HT接入代码执行以下操作:

“user_name1.pms.com” 需要重定向到 “pms.com”

“user_name1.pms.com /联系人“需要重定向到”pms.com/contact“

即任何请求的子域名,如URL必须重定向到主网站的格式:pms.com,然后是查询字符串。

非常重要:

重要1:

当我说重定向到主网站,我需要保持像URL子域的地址栏上,但该请求将通过主网站提供服务。

即将从pms.com/contact提供“user_name1.pms/contact”,但在地址栏上我们仍然会看到url“user_name1”。PMS /接触”

重要2:

每当我们使用.htaccess的请求重定向到主Zend服务器,我可以识别的实际URL地址栏即进入‘site1.pms或site1.com’ ?

自定义域重定向的另一个问题:

自定义域名,如 “site1.com” 或 “site2.com” 需要重定向到之一:

方案(a):“PMS。 com“ 选项(b):”site1 .pms.com

为服务请求。在这里,我需要保持地址栏上的网址与输入的用户相同。

  1. 上述选项哪个更好(a)或(b)?

  2. 哪种技术可以完成这项工作,域映射或CName?或任何其他技术,使这项工作。

+0

如果您使用Apache,您可以为您的域创建通配符别名,然后如果用户与PHP的存在,你可以检查。所以你会知道,如果用户存在数据库你好去.. – Vytautas 2012-03-19 10:47:53

+0

好的,谢谢。我会检查这一点。 – 2012-03-20 04:54:41

回答

0

可以使用CPanel中的某种技术处理子域。要的cPanel添加vurtual子域,做的步骤:

  1. 选择“的cPanel - 子域名”
  2. 输入星,并选择您的域名
  3. 选择的目录中,你需要重定向

并处理您的页面重定向。

要开发使用Zend SaaS应用程序,检查教程SaaS application development using PHP in Zend Framework

1

有几种方法,让你至少接近你想要什么......但让所有的方式在那里,你将需要得到更深入一点。

首先,你的问题:

  1. 可能需要真正建立一个完整的虚拟主机对每个用户来说,如果你打算让他们能够通过自己的与您的网站互动域。如果你只是想让他们的域名重新定向到你的注册服务商(如果他们能够成功使用屏蔽,我一直发现有问题,但可能完全没有这样做,如果你忽略了定制域名要求,那么你可以完全通过mod_rewrite管理子域名,而不必实际设置它们。
  2. 可能是您的网站的最佳体系结构是主动设置用户注册时需要设置的任何内容。尝试在用户第一次尝试访问它时“及时”执行此操作,因此就像在某人输入usre.pms.com而不是user.pms.com时显示错误一样简单
  3. 您可以使用htaccess或您的网站的配置文件(这对性能更好,但仅限于“完成”目的,htaccess会正常工作)。
  4. Google

很重要的一点#1:这是怎样的mod_rewrite的作品。别担心。 很重要的一点#2:是的,只要你有这些信息沿着你的mod_rewrite规则传递

上一个自定义域名重定向的问题:

这就是事情变得复杂。如果没有apache充分意识到它正在寻找site1.com(除非您在转换时使用掩码在注册服务商处没有问题地进行工作),您不能从pms.com服务site1.com。一般来说,如果您使用某种类型的转发,那么您会希望它们转发到子域,并且所有通过mod_rewrite完全变好。如果他们直接将域指向您的服务器,那么CNAME记录可能是正确的选择,直接指向子域,但您仍然必须了解虚拟主机以及如何正确设置虚拟主机以使所有内容都能正常工作。

我认为您可能正在通过让您的客户拥有自己的自定义域名而超过您的实现进行登录。您可以在下午或几天内学习如何使用子域名完成您想要的任务。弄清所有的来龙去脉使用自定义域名可能需要更长的时间。

+0

谢谢你的答案。你解决了我的所有问题。现在轮到我检查所有这些了。我会尽快更新我的研究结果。 – 2012-03-20 04:56:18