如何使用子域链接子目录? (虚拟主机、mod_rewrite、htaccess、DNS)
Posted
技术标签:
【中文标题】如何使用子域链接子目录? (虚拟主机、mod_rewrite、htaccess、DNS)【英文标题】:How to link subdirectories using subdomain? (VirtualHost, mod_rewrite, htaccess, DNS) 【发布时间】:2015-09-01 13:21:34 【问题描述】:我正在使用 AWS(亚马逊网络服务)的 EC2 和 Route 53 以及 Bitnami 的 LAMP(Apache、mysql、php)。
我正在尝试独立运行两个 wordpress 网站:
...local_path/htdocs/subsite1
...local_path/htdocs/subsite2
我想使用如下子域访问这些子站点:
subsite1.mydomain.com → ...local_path/htdocs/subsite1
subsite2.mydomain.com → ...local_path/htdocs/subsite2
此外,我想在需要时切换“mydomain.com”和“www.mydomain.com”的位置(可能一年一次或两次)。具体来说,我想在需要时在案例 A 和 B 之间切换。
Case A :
subsite1.mydomain.com -↘︎
mydomain.com ----------→ ...local_path/htdocs/subsite1
www.mydomain.com ------↗︎
subsite2.mydomain.com → ...local_path/htdocs/subsite2
Case B :
subsite1.mydomain.com → ...local_path/htdocs/subsite1
mydomain.com ----------↘︎
www.mydomain.com ------→ ...local_path/htdocs/subsite2
subsite2.mydomain.com -↗︎
我尝试结合DNS(AWS Route 53)、VirtualHost、mod_rewrite和/或htaccess跟随几篇互联网文章,但没有成功,虽然我认为有几种方法可以实现。
考虑到安全性和便利性,解决此问题的最佳方法是什么?我应该如何设置它们? 提前谢谢!
【问题讨论】:
重复? ***.com/questions/13837978/… This one in particular 可能是,但我认为链接帖子上没有提到切换“mydomain.com”和“www.mydomain.com”的情况。谢谢。 对不起,我不知道,因为这是我的第一个问题!我做到了。谢谢! 【参考方案1】:(自答)
我使用 VirtualHost 解决了这个问题。
特别是在“mydomain.com”和“www.mydomain.com”的情况下,我使用了ServerAlias。
首先,我为我的服务器的ip注册了A记录:
mydomain.com. A XXX.XXX.XXX.XXX
www.mydomain.com. A XXX.XXX.XXX.XXX
subdomain1.mydomain.com. A XXX.XXX.XXX.XXX
subdomain2.mydomain.com. A XXX.XXX.XXX.XXX
其次,在 VirtualHost 的配置文件中,(在我的例子中,.../apache2/conf/extra/httpd-vhosts.conf)
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin email1@domainX.com
DocumentRoot ...local_path/htdocs/subsite.mydomain.com/htdocs
ServerName subsite1.mydomain.com
ServerAlias subsite1.mydomain.com mydomain.com
ErrorLog "logs/subsite1.mydomain.com-error_log"
CustomLog "logs/subsite1.mydomain.com-acccess_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin email2@domainY.com
DocumentRoot ...local_path/htdocs/subsite2.mydomain.com/htdocs
ServerName subsite2.mydomain.com
ServerAlias subsite2.mydomain.com www.mydomain2.com
ErrorLog "logs/subsite2.mydomain.com-error_log"
CustomLog "logs/subsite2.mydomain.com-access_log" common
</VirtualHost>
效果很好!
参考(关于 VirtualHost 的韩国文章)
http://techstory.kr/%EC%9B%B9%EC%84%9C%EB%B2%84-%EC%84%A4%EC%B9%98-%EB%B0%8F-subdomain-%EC%84%A4%EC%A0%95/ http://susemi99.kr/379【讨论】:
另外,我修改了具有prevented activation of .htaccess files 的httpd.conf。将 ...web_root/htdocs 目录的AllowOverride None
更改为 AllowOverride All
以上是关于如何使用子域链接子目录? (虚拟主机、mod_rewrite、htaccess、DNS)的主要内容,如果未能解决你的问题,请参考以下文章
如何将不同的域或子域打开到新选项卡以及相同的域链接到相同的选项卡
如何使用虚拟主机将动态子域提供给位于 docroot 中的文件夹