在托管服务器中,我有两个响应相同地址的域。但是,主要的域是拥有网站的域A,域B希望通过.htaccess重定向到在同一服务器上具有系统项目的特定目录。
例如:我可以通过下面的地址访问该项目 www.exampleDomainA.com/project
我希望下面的域指向上面的目录。 www.exampleDomainB.com
如何在.htaccess中进行配置?
访问网站时加载正常 www.exampleDomainA.com /
访问www.exampleDomainB.com时,加载目录www.exampleDomainA.com/project
中的目录答案 0 :(得分:0)
您需要将内部重写规则与将应用程序限制到特定域的条件(实际上,它是“主机名”)结合起来,并防止重定向循环:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.exampleDomainB\.com$
RewriteCond %{REQUEST_URI} !^/project/?
RewriteRule ^/?(.*)$ /project/$1 [END]
此规则集将在http服务器主机配置或动态配置文件(“ .htaccess”文件)中同样起作用。显然,重写模块需要加载到http服务器内部,并且如果您使用动态配置文件,则需要注意在主机配置中启用了它的解释功能,并且该解释模块位于主机的DOCUMENT_ROOT
中夹。
还有一个一般性说明:您应该始终喜欢将此类规则放置在http服务器主机配置中,而不要使用动态配置文件(“ .htaccess”)。这些动态配置文件增加了复杂性,通常是导致意外行为,难以调试的原因,并且确实降低了http服务器的速度。仅当您无法访问真正的http服务器主机配置(阅读:真正便宜的服务提供商)或坚持编写自己的规则的应用程序(这显然是安全的噩梦)时,才提供它们作为最后的选择。